繁体   English   中英

列表推导中的嵌套循环和条件检查(python)

[英]nested loops and conditional checks in list comprehensions (python)

我目前正在学习 Python 中的列表理解,我想编写一个 function ,它采用两个列表ab ,并返回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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM