如何在python for循环中获取计数器的值

时间:2015-04-04 02:33:40

标签: python

修复以下代码的最佳方法是什么

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}]

**我不想使用其他变量

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