在Python中将奇数写入数组

时间:2017-11-11 02:09:46

标签: python list

我正在尝试使用以下代码将偶数数字写入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。这段代码有什么问题?我该如何解决?

3 个答案:

答案 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)]