小编典典

检查元素是否存在于元组的元组中

python

我有一个看起来像元组的列表:

CODES = (
    ('apple', 'reddelicious'),
    ('caramel', 'sweetsticky'),
    ('banana', 'yellowfruit'),
)

检查该元组中是否存在值的最佳方法是什么?例如,我想能够说:

'apple' in CODES

并得到真


阅读 218

收藏
2020-12-20

共1个答案

小编典典

您正在寻找any()

if any('apple' in code for code in CODES):
    ...

结合一个简单的生成器表达式,就可以完成任务。生成器表达式接受每个元组,True如果包含则产生'apple'any()然后True在请求的第一个项目返回时返回True(否则为False)。因此,这就是您想要的。它也可以很好地读取-
如果有任何元组包含'apple'

如果您要执行大量操作并且需要性能,那么可能值得设置所有值的集合以使您能够快速执行此操作:

cache = set(itertools.chain.from_iterable(CODES)))

自然地,构建它会很慢并且会占用内存,因此,除非您需要大量的性能并进行大量的成员资格检查,否则这不是一个好主意。

2020-12-20