我非常基本地理解+=
和.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]**
有谁知道为什么会这样?
答案 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]
您可以找到有关尾随,