问题:如何在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 中的列表理解
这是一个二进制操作器,即在阵列上工作的
如何转换此逐码逐列压缩
用多ifs 理解python列表
不要使用其他if
!
numbers = [x for x in range(99) if (x % 5 == 0) or (x % 7 == 0)]
print(numbers)
因为if
是一个语句,而这些都是表达式,然后执行or
并使用if
简写进行检查。