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)时,又得到不一样的结果:
就因为这么点破事,两天的程序白跑了,靠靠靠。
如果想达到那种依次改变每个列表对应位置的值的效果,我的解决方案是把字典默认值设为空字符串,利用字符串的拼接输出。。。
时间: 2024-10-22 00:45:27