Counting the amount of occurrences in a list of tuples

后端 未结 3 1831
余生分开走
余生分开走 2021-02-04 01:44

I am fairly new to python, but I haven\'t been able to find a solution to my problem anywhere.

I want to count the occurrences of a string inside a list of tuples.

3条回答
  •  独厮守ぢ
    2021-02-04 02:18

    Maybe collections.Counter could solve your problem:

    from collections import Counter
    Counter(elem[0] for elem in list1)
    

    returns

    Counter({'12392': 2, '7862': 1})
    

    It is fast since it iterates over your list just once. You iterate over entries and then try to get a count of these entries within your list. That cannot be done with .count, but might be done as follows:

    for entry in list1:
        print sum(1 for elem in list1 if elem[0] == entry[0])
    

    But seriously, have a look at collections.Counter.

    EDIT: I actually need the total amount of entries which has a value more than 1.

    You can still use the Counter:

    c = Counter(elem[0] for elem in list1)
    sum(v for k, v in c.iteritems() if v > 1)
    

    returns 2, i.e. the sum of counts that are higher than 1.

提交回复
热议问题