我有一个表单列表:
[[(1, 2), (2, 1)], [(1, 2), (1, 2)], [(2, 3), (2, 2)]]
我想知道给定元组在每个子列表的零位置发生的次数。在上面的例子中,如果我想找到(1,2)的计数,我希望返回2,因为次数(1,2)显示为子列表中的第一项。
我尝试过使用list.count(),但这似乎仅限于第一个列表中的出现次数,并且无法解析子列表中的位置。
我也研究过Counter(),但这似乎也没有给出我想要的东西。
答案 0 :(得分:4)
>>> from collections import Counter
>>> lst = [[(1, 2), (2, 1)], [(1, 2), (1, 2)], [(2, 3), (2, 2)]]
>>> c = Counter(sublst[0] for sublst in lst)
>>> c
Counter({(1, 2): 2, (2, 3): 1})
>>> c[(1, 2)]
2
答案 1 :(得分:2)
a = [[(1, 2), (2, 1)], [(1, 2), (1, 2)], [(2, 3), (2, 2)]]
item = (1,2)
count = [sublist[0] for sublist in a].count(item)
答案 2 :(得分:0)
这可能不是很优雅,但我只是在玩......
>>> lst
[[(1, 2), (2, 1)], [(1, 2), (1, 2)], [(2, 3), (2, 2)]]
>>> (lambda x: [l[0] == (1,2) for l in x].count(True) )(lst)
2
>>> (lambda list,tuple: [l[0] for l in list].count(tuple) )(lst, (1,2))
2
>>> z=0
>>> for ll in lst:
... if ll[0] == (1,2): z+=1
...
>>> z
2