我列出的形式列表:計數給定項目的
[[(1, 2), (2, 1)], [(1, 2), (1, 2)], [(2, 3), (2, 2)]]
我想知道在第零發生給定元組的次數每個子列表的位置。在上面的例子中,如果我想查找(1,2)的計數,我希望返回2,因爲次數(1,2)的次數作爲子列表中的第一項出現。
我試過使用list.count(),但似乎僅限於第一個列表中的出現次數,並且無法解析子列表中的位置。
我也看了一下Counter(),但那也似乎並沒有給我想要的東西。
我列出的形式列表:計數給定項目的
[[(1, 2), (2, 1)], [(1, 2), (1, 2)], [(2, 3), (2, 2)]]
我想知道在第零發生給定元組的次數每個子列表的位置。在上面的例子中,如果我想查找(1,2)的計數,我希望返回2,因爲次數(1,2)的次數作爲子列表中的第一項出現。
我試過使用list.count(),但似乎僅限於第一個列表中的出現次數,並且無法解析子列表中的位置。
我也看了一下Counter(),但那也似乎並沒有給我想要的東西。
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)
>>> 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
這可能不是很優雅,但我只是玩弄......
>>> 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