我有一个如下所示的列表:
fruit_list = [
['fruit1', ('banana', '1234'), ('pear', '3456'), ('banana', '4578')],
['fruit2', ('apple', '5474'), ('mango', '7854')],
['fruit3', ('Pineapple', '4534'), ('apple', '5456'), ('apple', '4458')],
]
如果该水果出现不止一次,我想知道的是该列表中的特定水果和特定列表。
像fruit_list[0].count('banana') > 1
这样的东西,但我不认为这会因为元组而起作用。
答案 0 :(得分:3)
您可以将sum()
函数与生成器表达式一起使用来计算匹配的元组:
sum(t[0] == 'banana' for t in fruit_list[0]) > 1
这是有效的,因为python booleans(False
和True
)是int
和False
== 0
和True
=的子类= 1
。总结这些给出了匹配的数量:
>>> fruit_list = [
... ['fruit1', ('banana', '1234'), ('pear', '3456'), ('banana', '4578')],
... ['fruit2', ('apple', '5474'), ('mango', '7854')],
... ['fruit3', ('Pineapple', '4534'), ('apple', '5456'), ('apple', '4458')],
... ]
>>> sum(t[0] == 'banana' for t in fruit_list[0])
2
>>> sum(t[0] == 'banana' for t in fruit_list[0]) > 1
True