通过 for 循环创建字典列表
我一直在尝试通过 for 循环创建字典列表,代码如下所示
a=["x","y","z"]
b=[1,2,3]
dict1={}
superlist=[]
for i in range(0,len(a)):
dict1['name']=a[i]
dict1['values']=b[i]
superlist.append(dict1)
Run Code Online (Sandbox Code Playgroud)
我期望的输出是
[{'name':'x', 'values':1},{'name':'y', 'values':2},{'name':'z', 'values':3}],
相反,我得到
[{'name':'z', 'values':3},{'name':'z', 'values':3},{'name':'z', 'values':3}].
我不太确定这里发生了什么,如果有人能解释并帮助我得到我想要的结果,那就太好了。
您dict1在每次迭代中附加一个引用,但每次也更改键的值,以便在结束时您有一个对同一字典的引用列表(这就是它们看起来都一样的原因)。
简单的解决方法是dict1 = {}在你的 for 循环中移动。这样你就创建了一个新的字典,它有自己的键值对,要附加到每次迭代中。
| 归档时间: |
|
| 查看次数: |
1929 次 |
| 最近记录: |