Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
理解Python中的any()-all()_Python_Python 3.4 - Fatal编程技术网

理解Python中的any()-all()

理解Python中的any()-all(),python,python-3.4,Python,Python 3.4,我对Python有一点经验,但是仍然不知道如何使用all()和any()。我试图解决一个问题 2520是可以被每个数字除的最小数字 从1到10,没有任何余数 能被全部整除的最小正数是多少 从1到20的数字是多少 我的算法最初是这样的 tp = (1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17, 18,19,20) #I used tuple so I thought process may faster than list for

我对Python有一点经验,但是仍然不知道如何使用
all()
any()
。我试图解决一个问题

2520是可以被每个数字除的最小数字 从1到10,没有任何余数

能被全部整除的最小正数是多少 从1到20的数字是多少

我的算法最初是这样的

tp = (1,2,3,4,5,6,7,8,9,10,
      11,12,13,14,15,16,17,
      18,19,20) #I used tuple so I thought process may faster than list

for x in range(100,100000,2):
    for t in tp:
        if x%t==0:
            print(x)
然而,在运行脚本之前,我意识到我的算法是错误的,因为这个数字可能会被元组中的所有数字整除。然后我记得
all()
函数,我试着像这样更改代码

if all(x%t==0):
    print(x)
但是我得到了
TypeError:“bool”对象是不可编辑的
error。可能我以前从未使用过
all()
any()
,只是看到了一些示例,我不理解。谁能给我解释清楚吗?然后我可以解决这个问题。

all()
any()
需要向它们传递一个iterable参数

  • all()
  • any()
    如果iterable中的任何一个值为true,则返回true
对于您的特定问题,您最好改用,因为它可以同时支持iterable和函数。

all()
any()
需要向它们传递iterable参数

  • all()
  • any()
    如果iterable中的任何一个值为true,则返回true
对于您的特定问题,您最好改用,因为它可以同时支持iterable和函数。

all()
any()
需要向它们传递iterable参数

  • all()
  • any()
    如果iterable中的任何一个值为true,则返回true
对于您的特定问题,您最好改用,因为它可以同时支持iterable和函数。

all()
any()
需要向它们传递iterable参数

  • all()
  • any()
    如果iterable中的任何一个值为true,则返回true
对于您的特定问题,您可能最好改用,因为它可以同时支持iterable和函数。

函数接受iterable作为其参数,您可以在其中传递生成器,同样,在python 3中,您可以使用
范围(1,20)
返回生成器,而不是元组:

>>> for x in range(100,100000,2):
...     if all(x%t==0 for t in range(1,21)):
...        print (x)
... 
>>>
当函数接受iterable作为其参数时,您可以在其中传递生成器,同样在python 3中,您可以使用
range(1,20)
返回生成器,而不是元组:

>>> for x in range(100,100000,2):
...     if all(x%t==0 for t in range(1,21)):
...        print (x)
... 
>>>
当函数接受iterable作为其参数时,您可以在其中传递生成器,同样在python 3中,您可以使用
range(1,20)
返回生成器,而不是元组:

>>> for x in range(100,100000,2):
...     if all(x%t==0 for t in range(1,21)):
...        print (x)
... 
>>>
当函数接受iterable作为其参数时,您可以在其中传递生成器,同样在python 3中,您可以使用
range(1,20)
返回生成器,而不是元组:

>>> for x in range(100,100000,2):
...     if all(x%t==0 for t in range(1,21)):
...        print (x)
... 
>>>
any()
all()
获取列表,而不是方程。虽然这些概念来自数学,但这些函数在值列表上运行。也许你想要:

for x in range(100,10000,2):
    if all([x%t==0 for t in tp]):
        print(x)
any()
all()
获取列表,而不是方程。虽然这些概念来自数学,但这些函数在值列表上运行。也许你想要:

for x in range(100,10000,2):
    if all([x%t==0 for t in tp]):
        print(x)
any()
all()
获取列表,而不是方程。虽然这些概念来自数学,但这些函数在值列表上运行。也许你想要:

for x in range(100,10000,2):
    if all([x%t==0 for t in tp]):
        print(x)
any()
all()
获取列表,而不是方程。虽然这些概念来自数学,但这些函数在值列表上运行。也许你想要:

for x in range(100,10000,2):
    if all([x%t==0 for t in tp]):
        print(x)

看看这一点,有几种语言(R…)可以让您的方法直接起作用,这一点毫无价值。但是,Python不会自动向量化操作。这与
all
(这在这里概念上是正确的)无关,只是当
x
是一个列表时,不幸的是您无法编写
x%t==0
。您需要手动映射或迭代列表中的每个元素。这不是关于
all()-any()
的问题的答案,而是关于列表的X。您所需要的,称为“”,并通过简单的公式计算,而不必在数百万候选对象中搜索解决方案(即使使用元组而不是列表这样伟大的优化)@bereal是的,谢谢你是对的问题是关于最不常见的倍数基本上看一看,没有什么价值,因为有几种语言(R…)可以直接使用你的方法。但是,Python不会自动向量化操作。这与
all
(这在这里概念上是正确的)无关,只是当
x
是一个列表时,不幸的是您无法编写
x%t==0
。您需要手动映射或迭代列表中的每个元素。这不是关于
all()-any()
的问题的答案,而是关于列表的X。您所需要的,称为“”,并通过简单的公式计算,而不必在数百万候选对象中搜索解决方案(即使使用元组而不是列表这样伟大的优化)@bereal是的,谢谢你是对的问题是关于最不常见的倍数基本上看一看,没有什么价值,因为有几种语言(R…)可以直接使用你的方法。但是,Python不会自动向量化操作。