从python for循环函数返回值
我已经编辑了我的问题。代码包含一个is_素数公式,它指示一个数字是否为素数>我试图提取3到65范围内的所有素数值从python for循环函数返回值,python,Python,我已经编辑了我的问题。代码包含一个is_素数公式,它指示一个数字是否为素数>我试图提取3到65范围内的所有素数值 a = [] b = [] c = [] d = [] def ll_prime(n_start, n_end): for number in range(n_start, n_end):
a = []
b = []
c = []
d = []
def ll_prime(n_start, n_end):
for number in range(n_start, n_end):
if is_prime(number) ==True:
a.append(number)
b.append(1)
else:
c.append(number)
d.append(0)
return (list(zip(a,b)))
上面的代码运行正常,但当我调用函数ll_prime(3,65)时,它给出了以下错误:
TypeError Traceback (most recent call last)
<ipython-input-498-1a1a58988fa7> in <module>()
----> 1 ll_prime(3,65)
2 #type(tyl)
3 #list_values = [ v for v in tyl.values()]
<ipython-input-497-d99272d4b655> in ll_prime(n_start, n_end)
11 c.append(number)
12 d.append(0)
---> 13 return (list(zip(a,b)))
TypeError: 'list' object is not callable
TypeError回溯(最近一次调用)
在()
---->1素数(3,65)
2型(tyl)
3#列出_值=[v表示类型中的v.values()]
在ll_素数中(n_开始,n_结束)
11 c.追加(数字)
12 d.1(0)
--->13返回(列表(邮政编码(a、b)))
TypeError:“列表”对象不可调用
有人能告诉我为什么我会犯这个错误吗?我已经搜索了上一个关于stackoverflow的问题,但没有一个对我的案例有帮助
我希望结果为:[(3,1),(5,1),(7,1)]等您可以从itertools
使用,并将其与您的列表一起压缩
>>> from itertools import repeat
>>> mb = [3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61]
>>> zip(mb, repeat(1))
[(3, 1), (5, 1), (7, 1), (11, 1), (13, 1), (17, 1), (19, 1), (23, 1), (29, 1), (31, 1), (37, 1), (41, 1), (43, 1), (47, 1), (53, 1), (59, 1), (61, 1)]
或者您可以使用如下列表:
>>> [(x, 1) for x in mb]
[(3, 1), (5, 1), (7, 1), (11, 1), (13, 1), (17, 1), (19, 1), (23, 1), (29, 1), (31, 1), (37, 1), (41, 1), (43, 1), (47, 1), (53, 1), (59, 1), (61, 1)]
到您的解决方案:在您的解决方案中,您将在第一次循环迭代后返回结果。所以它还没有正确的值。尝试将返回移动到循环之外。您可以使用列表:
def l1_prime():
返回[(i,1)以mb表示的i]
一个问题是,您的return
命令位于for循环内,因此它只执行一次。这可能就是为什么你没有得到你想要的。当我运行代码时,它返回(3,1),这只是第一组项。如果它只在for循环中运行一次,然后返回,那么这是有意义的。试试这个:
mb = [3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61]
list1 = []
list2 = []
def prime():
for i in mb:
list1.append(i)
list2.append(1)
print(str(len(list1)))
print(str(len(list2)))
return (list(zip(list1,list2)))
当我运行它时,我得到了正确的答案如果要返回第一次迭代的值,请将return语句移到脚本中loopNameError之外。除非你想帮你修好。请提供复制您的问题的正确答案。感谢可能的副本