python - 检查元组的元组中是否存在元素

标签 python list

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

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

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

'apple' in CODES

得到真

最佳答案

您正在寻找 any() :

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

结合简单的generator expression , 这完成了任务。生成器表达式接受每个元组,如果它包含 'apple',则生成 Trueany() 然后在它请求的第一个项目返回 True 时返回 True(否则,False)。因此,这可以满足您的需求。它也很好读 - 如果任何元组包含 'apple'

如果您要多次执行此操作并且需要性能,那么可能值得将所有值设置为允许您快速执行此操作:

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

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

关于python - 检查元组的元组中是否存在元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15124833/

相关文章:

python - 静默运行 WeasyPrint 脚本

python - 在 Python 中获取数组中每行的第一个元素?

python - 大数据情况下如何排错代码

python - 这个符号对 Python : "someList[:]"? 中的列表有什么作用

python - 根据任一索引处的值从两个列表中删除项目

python - 使用 pandas 将两个不同的数据帧转换为一个 json 文件

python - 使用 keras 函数式 API 构建(预训练的)CNN+LSTM 网络

创建编号列表时 VBA Access Word 错误

c# - 检查 List<Int32> 值是否连续

list - 如何在 Haskell 中正确使用守卫?