在基本的 Python 列表推导式中使用“或”运算符

刘易斯·洛克哈特

问题:如何在 Python 列表推导式中使用 OR?

我希望输出 0-99 之间的任何数字,该数字可以被 5 或 7 整除而没有余数。我有以下代码:

numbers = [x for x in range(99) if x % 5 == 0 if x % 7 == 0]

但这会返回:0, 35, 70,它们是可以被 5 和 7 整除的数字。我也试过:

numbers = [x % 5 == 0 or x % 7 == 0 for x in range(99)]

但这会为每个数字返回 True 或 False,我希望在其中获取数字本身。使用这个:

numbers = [x for x in range(99) if x % 5 == 0 or if x % 7 == 0]

抛出语法错误。

我查看了以下页面,但无法理解如何应用这些解决方案。他们每个人似乎都为我想要的解决方案提供了细微差别,但并不是我想要的。

datacamp.com/community/tutorials/python-list-comprehension

programiz.com/python-programming/list-comprehension

在 python-lambda 函数中使用或操作符

不理解列表理解在python

有一个二进制或运算符在 python-that-works-on-arrays

如何将这个我的代码转换为列表理解

python-list-comprehension-with-multiple-ifs

程序员365

不要使用另一个if

numbers = [x for x in range(99) if (x % 5 == 0) or (x % 7 == 0)]
print(numbers)

因为if是语句,那些是表达式,然后做or和使用if速记来检查。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章