我有一个元组列表,看起来像:
CODES = (
('apple', 'reddelicious'),
('caramel', 'sweetsticky'),
('banana', 'yellowfruit'),
)
检查该元组中是否存在值的最佳方法是什么?例如我想能够说:
'apple' in CODES
得到真
最佳答案
您正在寻找 any()
:
if any('apple' in code for code in CODES):
...
结合简单的generator expression , 这完成了任务。生成器表达式接受每个元组,如果它包含 'apple'
,则生成 True
。 any()
然后在它请求的第一个项目返回 True
时返回 True
(否则,False
)。因此,这可以满足您的需求。它也很好读 - 如果任何元组包含 'apple'
。
如果您要多次执行此操作并且需要性能,那么可能值得将所有值设置为允许您快速执行此操作:
cache = set(itertools.chain.from_iterable(CODES)))
当然,构建它会很慢并且会占用内存,因此除非您需要大量性能并且会进行大量成员资格检查,否则这不是一个好主意。
关于python - 检查元组的元组中是否存在元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15124833/