如何在Python中追加列表而不重写?
我正在学习如何在列表中添加索引,但我一直在覆盖我的迭代。你能帮忙吗如何在Python中追加列表而不重写?,python,Python,我正在学习如何在列表中添加索引,但我一直在覆盖我的迭代。你能帮忙吗 country = ["Denmark", "Croatia", "Britian", "Canada"] for idx, val in enumerate(country): d = [] d.append(idx) print(d) 您需要将d的定义放在循环之外,否则在每次迭代中,d再次变成一个空列表。d在每次进入循环
country = ["Denmark", "Croatia", "Britian", "Canada"]
for idx, val in enumerate(country):
d = []
d.append(idx)
print(d)
您需要将
d
的定义放在循环之外,否则在每次迭代中,d再次变成一个空列表。d在每次进入循环时被实例化为null,请在循环之外定义它
country = ["Denmark", "Croatia", "Britian", "Canada"]
d = []
for idx, val in enumerate(country):
d.append(idx)
print(d)
设置它的方法是每次循环时创建列表d 要解决此问题,您需要在进入循环之前声明列表。这样它就不会每次都制作一个没有元素的d的新副本
country = ["Denmark", "Croatia", "Britian", "Canada"]
d = []
for idx, val in enumerate(country):
d.append(idx)
print(d)
输出
丹麦
克罗地亚
英国人
加拿大不要在循环中使用
d=[]
重新创建列表。将该行置于for
循环上方。在每次迭代中,您将创建一个新的d
。模式d=[]
在for循环外部考虑在for循环外部定义变量d
。这将确保d
不会在每次迭代中重置。除非您特别询问如何解决跨版本兼容性问题(在这种情况下,您的问题显然应该描述该问题),否则您不应该混合使用and标记。我已经删除了这两个标签,以及其他一些完全虚假的标签。请不要垃圾邮件标签。
country = ["Denmark", "Croatia", "Britain", "Canada"]
#list initialized with nothing in it
d = []
for idx, val in enumerate(country):
#list declaration here means we make a new copy of d every time we go through the loop
d.append(idx)
#I moved the print outside the loop so we don't print on every iteration
print(d)
country = ["Denmark", "Croatia", "Britian", "Canada"]
d = []
for i,v in enumerate(country):
d.append(v)
for i in range(0,4):
print(country[i])