玩蛇网提供最新Python编程技术信息以及Python资源下载!
您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容

python {}.fromkeys创建字典append添加操作列表出错了?

直接上代码:
header= {'a', 'c', 'b', 'e', 'f'}
然后根据该序列初始化字典dic1,并设置其值默认格式为list:
dic1={}.fromkeys(header,[])
print dic1
输出:{'a': [], 'c': [], 'b': [], 'e': [], 'f': []}
一切都是对的:

python {}.fromkeys创建字典append添加操作列表出错了?

然后为key为'a'的键更新value:
dic1['a'].append(1)
print dic1
可输出竟然是:
{'a': [1], 'c': [1], 'b': [1], 'e': [1], 'f': [1]}

按道理应该是
{'a': [1], 'c': [], 'b': [], 'e': [], 'f': []}

可是换一种方式:
直接定义字典的话:
dic2={'a': [], 'c': [], 'b': [], 'e': [], 'f': []}
dic2['a'].append(1)
print dic2
输出则是正常的
{'a': [1], 'c': [], 'b': [], 'e': [], 'f': []}

在pydev中对比,两个变量是一模一样的:

这是为什么呢,求大神支招。

玩蛇网文章,转载请注明出处和文章网址:http://www.iplaypy.com/wenda/wd18215.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2018年03月30日 - 10时50分11秒 发布自玩蛇网

我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules