首页 > 代码库 > python字典value为列表时遇到的问题

python字典value为列表时遇到的问题

a = [1,2,3,4,5,5,5,5,5,5,5]
c = set(a)
c = list(c)
b = {}.fromkeys(a,[0,0,0,0,0])
for x in c:
    b[x][0] = a.count(x)
print b

猜猜会发生什么?

我猜python在执行程序的过程中,把a.count(x)当成一个常量来执行循环,把每个列表的第一个元素都变成了a.count(5)

但是当去掉代表列表的[0]时

把b[x][0] = a.count(x)改为b[x]=a.count(x)时,又得到不一样的结果:

就因为这么点破事,两天的程序白跑了,靠靠靠。

如果想达到那种依次改变每个列表对应位置的值的效果,我的解决方案是把字典默认值设为空字符串,利用字符串的拼接输出。。。

python字典value为列表时遇到的问题