2

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

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>

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

4

1 回答 1

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
于 2013-04-06T20:15:51.163 回答