[英]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.