我正在尝试在下面创建一个字典,结果要喜欢;
{'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7'}
list1 = ('1','2','3','4','5','6','7')
counter = 0
for x in list1:
counter = counter+1
d = {
x:counter
}
但我得到的结果是:{'7': 7}
答案 0 :(得分:0)
使用字典理解:
d = {x: int(x) for x in list1}
或
d = {x: i+1 for i, x in enumerate(list1)}
如果您还想继续循环,请尝试:
list1 = ('1','2','3','4','5','6','7')
counter = 0
for x in list1:
counter = counter+1
d[x] = counter
或 d.update({x: counter})
而不是 d[x] = counter
。
答案 1 :(得分:0)
您在每次迭代时都重新分配 d
。
无论哪种方式,您都可以使用字典理解和enumerate
:
>>> list1 = ('1','2','3','4','5','6','7')
>>> d = {x: counter for counter, x in enumerate(list1, 1)}
{'1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7}
答案 2 :(得分:0)
dict1 = { x: int(x) for x in list1 }
答案 3 :(得分:0)
你每次都创建一个新的字典
开始一个并添加到它
d = {}
for foo in bar:
d[foo] = baz
答案 4 :(得分:0)
那是因为您在每次迭代时都删除了变量 d
。
您想将新的键和值添加到现有字典(创建为空:d = {}
)中,使用 d[x] = counter
。