在python中,如何将数组/列表与数字进行比较 array=[] 当len(阵列)
出于学习的目的,我试图找到第1000个素数。唯一的问题是我找不到一种方法来检查我是否可以被数组中的元素整除。 如果i%array==0:在python中,如何将数组/列表与数字进行比较 array=[] 当len(阵列),python,arrays,Python,Arrays,出于学习的目的,我试图找到第1000个素数。唯一的问题是我找不到一种方法来检查我是否可以被数组中的元素整除。 如果i%array==0: 语法不正确,那么是什么呢?您可以执行以下操作: array = [] while len(array) < 1000: i=2 if i%array == 0: append.array(i) i = i + 1 print array[999] 基本上,检查生成器表达式的任何项是否满足条件 发件人: 不过,我对Python不够熟悉,不
语法不正确,那么是什么呢?您可以执行以下操作:
array = []
while len(array) < 1000:
i=2
if i%array == 0:
append.array(i)
i = i + 1
print array[999]
基本上,检查生成器表达式的任何项是否满足条件
发件人:
不过,我对Python不够熟悉,不知道它的效率有多高。为了避免必须测试数组中的每个项目,您还可以尝试筛选测试条件的次数。作为一个例子,下面的一行将为您提供一个列表,列出截至第一行的所有不满足条件的元素。从中,您可以知道您的条件是否满足(例如,通过检查长度),以及哪些项目满足条件
all(iterable)
Return True if all elements of the iterable are true (or if the iterable is empty).
在这里,我选择在满足条件的第一个元素处停止,但可能还有其他方法 您的代码:
filtered = list(itertools.takewhile(lambda item: item%a != 0, array))
if len(filtered) != len(array):
print array[len(filtered)]
编辑:检查数字是否可被数组中的任何元素整除
# see whether the number n is divisible by the number at index 3 in array
if n % array[3]:
print("True")
else:
print("False")
这使用模数来检查一个数字是否可以被一个数字列表中的每个数字平均整除。如果任何检查成功,立即返回True
。如果选中每个数字并且循环终止,则返回False
在Python中,使用内置函数any()
执行上述操作的方法较短
这两个函数完全相同,但第二个运行得更快,因为它使用了Python内置的
any()
函数。这是一个学习Python内置的所有酷东西如何使程序更快地编写的示例。这正是列表和数组之间的区别所在。在列表中,您不能对照另一个值检查每个值,正如您不能简单地通过划分列表来划分每个元素:
def divisible_by_any(number, lst):
return any(number % n == 0 for n in lst)
另外,如果有更简单的方法来解决这个问题,请让我知道!实际上,你试图做的算法对于PrimeNumber来说是错误的另一件事是i%数组给定的数组是列表你如何用列表除以一个数字你所说的是我的问题。我试着将一个数字与一个列表进行比较。它是一个生成器,而不是一个列表:p非常感谢你,这正是我想要的@user3743825我的荣幸,别忘了为我们未来的程序员同事们接受答案,他们可能会遇到同样的问题。感谢您提供的资源!写得很好。我的问题措辞也不直截了当。我想检查一个数字是否可以被数组[]中的任何元素整除。
# see whether the number n is divisible by the number at index 3 in array
if n % array[3]:
print("True")
else:
print("False")
def divisible_by_any(number, lst):
for n in lst:
if number % n == 0:
return True
return False
def divisible_by_any(number, lst):
return any(number % n == 0 for n in lst)
>>> list=[1,2,3,4,5,6,7,8]
>>> list==5
False
>>> list/5
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
list/5
TypeError: unsupported operand type(s) for /: 'list' and 'int'
>>> from numpy import array
>>> array=array([1,2,3,4,5,6,7,8])
>>> array==5
array([False, False, False, False, True, False, False, False], dtype=bool)
>>> any(array==5)
True
>>> any(array==50)
False
>>> array/5
array([0, 0, 0, 0, 1, 1, 1, 1])