繁体   English   中英

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

[英]create a Python dictionary where for each key has a list as the value

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

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

使用 dict 理解:

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

您在每次迭代时重新分配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}
dict1 = { x: int(x) for x in list1 }

你每次创建一个新的字典

开始一个并添加到它

d = {}
for foo in bar:
    d[foo] = baz

那是因为您在每次迭代时都删除了变量d

您想使用d[x] = counter将新键和值添加到已经存在的字典(创建为空: d = {} )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM