使用+ =通过while循环填充列表会给我一个错误

时间:2016-03-15 01:28:22

标签: python while-loop append

我非常基本地理解+=.append在将新元素添加到列表方面非常相似。但是,当我尝试通过while循环填充具有随机整数值的列表时,我发现它们的执行方式不同。 append效果很好,但是,使用+=运行我的程序会给我一个错误:

TypeError:' int'对象不可迭代

这是我的代码:

1.use + =

import random

random_list = []
list_length = 20

# Write code here and use a while loop to populate this list of random integers. 
i = 0
while i < 20:
    random_list += random.randint(0,10)
    i = i + 1

print random_list

**TypeError: 'int' object is not iterable**

2.use .append

import random

random_list = []
list_length = 20

# Write code here and use a while loop to populate this list of random integers.
i = 0
while i < 20:
    random_list.append(random.randint(0,10))
    i = i + 1

print random_list

**[4, 7, 0, 6, 3, 0, 1, 8, 5, 10, 9, 3, 4, 6, 1, 1, 4, 0, 10, 8]**

有谁知道为什么会这样?

2 个答案:

答案 0 :(得分:2)

这是因为+=用于将列表附加到另一个列表的末尾,而不是用于附加项目。

这是做的简短版本:

items = items + new_value

如果new_value不是列表,则会失败,因为您无法使用+将项目添加到列表中。

items = items + 5 # Error: can only add two list together

解决方案是将值转换为单项长列表:

items += [value]

或者使用.append - 将单个项目添加到列表的首选方式。

答案 1 :(得分:1)

是的,这很棘手。只需在,

末尾添加random.randint(0, 10)即可
import random

random_list = []
list_length = 20

# Write code here and use a while loop to populate this list of random integers.
i = 0
while i < 20:

    random_list += random.randint(0, 10),
    i += 1

print random_list

它将打印:

[4, 7, 7, 10, 0, 5, 10, 2, 6, 2, 6, 0, 2, 7, 5, 8, 9, 8, 0, 2]

您可以找到有关尾随,

的更多explanation