我有一个名为huge_list
的嵌套列表,因为名称显示它非常大。我需要知道如何获得子列表的2个元素的给定组合出现的次数,例如:
huge_list = [[6,10,5,4,40,99],[1,10,3,6,40,71],[2,10,3,4,40,98]]
count = 0
for x in huge_list:
#print amount of times position 1 and 4 have the same combination
count = count + 1
,输出为:
3
3
3
我尝试过类似的事情:
sum(x.count(huge_list[count][1]) for x in huge_list)
但它适用于其中一个项目,而不是两个项目。有什么想法吗?
答案 0 :(得分:2)
如果您在列表列表中查找索引1
和4
的所有组合的计数,则很难做得比:
import collections
huge_list = [[6,10,5,4,40,99],[1,10,3,6,40,71],[2,10,3,4,40,98]]
count = collections.Counter(((sublst[1], sublst[4]) for sublst in huge_list))
哪个会给你:
In [3]: count
Out[3]: Counter({(10,40): 3})
您可以在此之后获得确切的请求输出:
for sublst in huge_list:
print(count.get((sublst[1], sublst[4]), 0))
答案 1 :(得分:1)
如果你有两个号码要检查,你可以总结:
huge_list = [[6,10,5,4,40,99],[1,10,3,6,40,71],[2,10,3,4,40,98]]
given = (10, 40)
print(sum((sub[1], sub[4]) == given for sub in huge_list))
答案 2 :(得分:0)
尝试了你的预期输出。我不知道你的期望是什么
huge_list = [[6,10,5,4,40,99],[1,10,3,6,40,71],[2,10,3,4,40,98]]
for i in huge_list:
c = 0
for j in huge_list:
if i[1]==j[1] and i[4]==j[4]:
c+=1
print c
#output
3
3
3