您的Python 2.6示例与以下示例等效,这可能有助于阐明:
>>> a = []>>> xs = dict.fromkeys(range(2), a)
结果字典中的每个条目都将引用同一对象。如您所见,使该对象发生变异的效果将在每个dict条目中可见,因为它是一个对象。
>>> xs[0] is a and xs[1] is aTrue
使用dict理解,或者如果您使用Python 2.6或更早版本并且没有字典理解,则可以通过使用
dict()生成器表达式来获得dict理解行为:
xs = dict((i, []) for i in range(2))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)