使用下面的代码 def odd_count(n): arr = list(50) for i in range(0,n,2): arr[i] = i return arr
def odd_count(n): arr = list(50) for i in range(0,n,2): arr[i] = i return arr
我流汗错误sayng TypeError: 'int' object is not iterable
写奇数数组在Python
此行引发上述异常
arr = list(50)
list
期望一个iterable
对象(东西,有一个__iter__()
方法)。改为传递int
。
要创建一个大小为50的列表,你可以使用*
经营者名单上:
arr = [None] * 50
这将创建一个设置为None
所有50个元素的列表。
解决你的问题更Python的方式是直接通过range
对象为list
构造,如:
def odd_count(n):
return list(range(1,n+1, 2))
print(odd_count(50))
可以初始化括号中的列表。在for循环中,使用.append()
。最终的代码应该是
def odd_count(n):
arr = []
for i in range(0,n,2):
arr.append(i)
return arr
认同,先生 – grovina
@PatrickHaugh:这个问题在标题中说得很奇怪,甚至在体内也是如此。 – ShadowRanger
您也可以使用Python的列表理解,如果你想成为Python化:
def even_numbers(n):
return [i for i in range(0,n,2)]
No-op listcomps并非真正的Pythonic;如果它是没有过滤器的身份转换,那么你只需要执行'list(range(0,n,2))',这个更快(除了最小输入之外的所有输入),更短和等价。 – ShadowRanger
你的标题说,你想奇数,你的身体甚至说。这是什么? – ShadowRanger
http://idownvotedbecau.se/beingunresponsive – klutt