我正在尝试使用以下代码将偶数数字写入Python中的列表
def odd_count(n):
arr = list(50)
for i in range(0,n,2):
arr[i] = i
return arr
我正在犯错误TypeError: 'int' object is not iterable
。这段代码有什么问题?我该如何解决?
答案 0 :(得分:4)
这一行提出了上述异常
arr = list(50)
list
需要一个iterable
对象(具有__iter__()
方法的对象)。您正在传递int
。
要创建大小为50的列表,您可以在列表中使用*
运算符:
arr = [None] * 50
这将创建一个列表,其中所有50个元素都设置为None
。
解决问题的一种更加pythonic的方法是将range
对象直接传递给list
构造函数,如:
def odd_count(n):
return list(range(1,n+1, 2))
print(odd_count(50))
答案 1 :(得分:0)
您可以使用括号初始化列表。在for循环中,使用.append()
。最终的代码应该是
def odd_count(n):
arr = []
for i in range(0,n,2):
arr.append(i)
return arr
答案 2 :(得分:0)
如果你想成为Pythonic,你也可以使用Python的列表理解:
def even_numbers(n):
return [i for i in range(0,n,2)]