我有一个空列表字典,所有键都在开头声明:
>>> keys = ["k1", "k2", "k3"]
>>> d = dict.fromkeys(keys, [])
>>> d
{'k2': [], 'k3': [], 'k1': []}
当我尝试添加坐标对时(列表["x1", "y1"]
) 到键的列表之一,而是添加到所有键的列表:
>>> d["k1"].append(["x1", "y1"])
>>> d
{'k1': [['x1', 'y1']], 'k2': [['x1', 'y1']], 'k3': [['x1', 'y1']]}
我正在寻找的是:
>>> d
{'k1': [['x1', 'y1']], 'k3': [], 'k1': []}
我如何在 Python 3 中实现这一点?
看起来每个列表实际上都是对单个列表的引用。附加到其中之一就附加到所有它们。
我不认为你可以在仍在使用的同时解决这个问题fromkeys
。尝试使用字典理解代替。
d = {k: [] for k in keys}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)