python - python中if语句的更短方式

标签 python if-statement

<分区>

l = ["a", "b", "c", "d", "e"]
if "a" in l and "b" in l and "c" in l and "d" in l:
   pass

编写此 if 语句的更短方式是什么?

尝试过:

if ("a" and "b" and "c" and "d") in l:
    pass

但这似乎是不正确的。什么是正确的方法? Python 3

最佳答案

一个想法可能是使用 all(..) 和一个生成器:

if all(x in l for x in ['a','b','c','d']):
    pass

All 将任何类型的可迭代对象作为输入,并检查可迭代对象发出的所有元素,bool(..)True .

现在在 all 内我们使用发电机。生成器的工作方式如下:

<expr> for <var> in <other-iterable>

(没有大括号)

因此它获取了 <other-iterable> 中的每个元素并调用 <expr>在上面。在这种情况下 <expr>x in l , 和 x<var> :

#         <var>
#           |
 x in l for x in ['a','b','c','d']
#\----/          \---------------/
#<expr>           <other-iterable>

进一步解释generators .

关于python - python中if语句的更短方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41707841/

相关文章:

python - 无法在conda环境(MAC)中点安装pyAudio

python - 简化座标 list

python - 如何从图像中删除最大轮廓标记的对象并将其另存为单独的图像?

.net - 用空字符串替换 DBNull 的最佳方法?

c# - async Task<bool> if 条件下的方法调用

python - 平方和的微小数值差异取决于所使用的 numpy 过程调用

python - Django 检查是否在基于类的 View 中的 super 用户

c - 循环因条件终止,但条件是必要的?

javascript - PHP 使用 ajax 如果其他不起作用和 md5()?

java - 空检查后抛出空错误?