3

我有一个表格列表:

[[(1, 2), (2, 1)], [(1, 2), (1, 2)], [(2, 3), (2, 2)]]

我想知道给定元组在每个子列表的第零位出现的次数。在上面的示例中,如果我想找到 (1, 2) 的计数,我希望返回 2,因为 (1, 2) 作为子列表中的第一项出现的次数。

我尝试过使用 list.count(),但这似乎仅限于出现在第一个列表中,并且无法解析子列表中的位置。

我也研究了 Counter(),但这似乎也没有给出我想要的。

4

3 回答 3

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
于 2013-07-20T04:32:47.217 回答
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)
于 2013-07-20T04:31:46.083 回答
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
于 2013-07-20T06:33:52.933 回答