修复以下代码的最佳方法是什么
my_list=[]
elem={}
for i in range(4):
elem['id']=i
my_list.append(elem)
print my_list
结果
[{'id': 3}, {'id': 3}, {'id': 3}, {'id': 3}]
预期结果
[{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}]
**我不想使用其他变量
答案 0 :(得分:4)
你需要在for循环中清空字典。
my_list=[]
elem={}
for i in range(4):
elem['id']=i
my_list.append(elem)
elem={}
print my_list
<强>输出:强>
[{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}]
OR
简单地,
my_list=[]
for i in range(4):
elem = {}
elem['id']=i
my_list.append(elem)
print my_list
答案 1 :(得分:4)
Pythonic方式:列表理解
>>> [{'id':x} for x in range(4)]
[{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}]
答案 2 :(得分:3)
my_list = []
for i in range(4):
mylist.append({'id': i})
这实际上相当于:
my_list = [{'id': i} for i in range(4)]