python - 以pythonic方式测试所有值是否都在可迭代中

标签 python if-statement

我目前正在这样做:

if x in a and y in a and z in a and q in a and r in a and s in a:
    print(b)

有没有更 Pythonic 的方式来表达这个 if 语句?

最佳答案

使用 all函数允许以一种简洁紧凑的方式编写它:

if all(i in a for i in (x, y, z, q, r, s)):
    print b

即使对象不可散列或者 a 对象有一些有趣的 __contains__ 方法,这段代码也应该与您的示例几乎完全相同。 all 函数也有类似的short-circuit行为作为原始问题中的 链。在一个元组(或一个列表)中收集所有要测试的对象将保证测试的执行顺序与原始问题中的相同。如果你使用一套,顺序可能是随机的。

关于python - 以pythonic方式测试所有值是否都在可迭代中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31484585/

相关文章:

python - 从 VBA 到 Python,再回到 Excel

python - For 循环语句评估

java - Switch里面的else语句是语法错误?

python - 如果列表中的项目与字典中子元素的列表中的项目匹配

python - 在 python 中处理列表

python - 仅当行和列值相同时才添加两个 pandas dataframe 值

python - Tkinter 在运行 input() 时无响应,在空闲时更糟

c# - 嵌套 'if' -'else' 语句

java - Android 应用程序上的 if 语句帮助

regex - 检查 while 循环(shell)内的正则表达式条件