理解Python中的any()-all()
我对Python有一点经验,但是仍然不知道如何使用理解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
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不会自动向量化操作。