确定条件是否适用于列表的所有成员

时间:2013-04-06 20:13:39

标签: python for-loop iterator

这是我一段时间没有找到的东西。例如,假设我有一个数字列表,我想检查每个数字是否可以被另一个列表中的每个数字整除,我该怎么做?我能想到的只有:

mylist = [1,2,3,4,5,etc...]
divisible = [1,2,3,4,5,6,etc...]
for i in mylist:
    for x in divisible:
        if i % x == 0:
            <do something>

显然,这只会检查mylist中的任何元素是否可被'divisible'中的任何元素整除,但如果它可被该列表中的所有元素整除则不会。我该怎么做呢?感谢

1 个答案:

答案 0 :(得分:5)

您可以使用all

>>> i = 2*3*17*23
>>> divs = [2, 17, 23]
>>> all(i % x == 0 for x in divs)
True
>>> all(i % x == 0 for x in [2,13,17])
False

另请参阅anynext

>>> any(i % x == 0 for x in [5, 17, 101])
True
>>> next(x for x in [5, 17, 101] if i % x == 0)
17