[英]nested loops and conditional checks in list comprehensions (python)
我目前正在学习 Python 中的列表理解,我想编写一个 function ,它采用两个列表a
和b
,并返回a
的所有元素,这些元素可以被b
的所有元素整除。
相当于这个(不使用列表理解)将是:
a = [10, 5]
b = [5, 2]
c = []
d = True
for i in a:
for j in b:
if i % j != 0:
d = False
if d:
c.append(i)
return c
如何通过列表理解做到这一点? 我目前有[x for x in a for y in b if x % y == 0]
但这只需要 x 匹配 b 中的一项,而不是全部。
试试这个:
a = [10, 5]
b = [5, 2]
res = [x for x in a if all(x % y == 0 for y in b)]
以完成@superb rain 的评论。 这里也是 any(...) 的示例:
res = [x for x in a if not any(x % y != 0 for y in b)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.