创建一个 Python 字典,其中每个键都有一个列表作为值

时间:2021-04-20 17:51:02

标签: python loops dictionary

我正在尝试在下面创建一个字典,结果要喜欢;

{'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}

5 个答案:

答案 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

相关问题