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)时,又得到不一样的结果:

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

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

时间: 2024-10-22 00:45:27

python字典value为列表时遇到的问题的相关文章

Python 字典items返回列表,iteritems返回迭代器

Python 字典items返回列表,iteritems返回迭代器 字典items()方法和iteritems()方法,是python字典的内建函数,分别会返回Python列表和迭代器,下面一起来看下字典items()和iteritems()的具体操作方法. 作用 python字典的items方法作用:是可以将字典中的所有项,以列表方式返回.如果对字典项的概念不理解,可以查看Python映射类型字典基础知识一文.因为字典是无序的,所以用items方法返回字典的所有项,也是没有顺序的.python

python 字典dict和列表list的读取速度问题, range合并

python 字典和列表的读取速度问题 最近在进行基因组数据处理的时候,需要读取较大数据(2.7G)存入字典中,然后对被处理数据进行字典key值的匹配,在被处理文件中每次读取一行进行处理后查找是否在字典的keys中,以下两段代码的效率差别非常大: 第一段: if(pos in fre_dist.keys()):newvalue= fre_dist[pos] 第二段: if(pos in fre_dist):newValue=fre_dist[pos] 在处理3万条数据时,第二段代码的速度是第一段

python 文件字符串转列表时遇空行的解决办法!

文件内容如下: Alex 100000 Rain 80000 Egon 50000 Yuan 30000 #此处有一个空行! 现在看如何处理并转成列表! salary_info = open("salaryinfo.txt", "r+", encoding="UTF-8") salary_info_list = [] for line in salary_info.readlines(): if line == '\n': pass else:

python字典复制

python列表复制 创建字典:name_info = {'name':'bebe','age':21,'sex':'girl','job':'IT','hobbies':'sport'} 1.info1=name_info,这两个指向的是同一个内存空间,此时,不管对info1或者name_info操作,字典的值都会改变 2.浅复制:info2=name_info.copy() 这两个指向的不是同一个内存空间,当对name_info进行增删改查操作时,info2值不会改变,反之亦然,但是,当字典

Python中list(列表)、tuple(元组)、dict(字典)基本操作快速入门

最近看了一下Python的列表.字典以及元组等几种数据类型,感觉这几种数据类型比较常用,顺便总结了一下一些比较常用的用法. 列表是Python中比较常用的数据类型,并且列表是可以改变的,使用也非常简单,具体操作如下: 1)如创建一个列表: list1 = [1,2,3] list2 = ['a','b','c'] list3 = [1,2,3,'a','b','abc'] list4 = [1,[2,3],['a','b',''c]] #创建一个有序列表 list5 = range(10) #创

python 高级数据类型(列表 元祖 字典 字符串)

高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) 真 True 非 0 数 -- 非零即真 假 False 0 复数型 (complex) 主要用于科学计算,例如:平面场问题.波动问题.电感电容等问题 非数字型 字符串 列表 元组 字典 在 Python 中,所有 非数字型变量 都支持以下特点: 都是一个 序列 sequence,也可以理解为 容

Python中元组,列表,字典的区别

Python中,有3种内建的数据结构:列表.元组和字典.1.列表     list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目.列表中的项目.列表中的项目应该包括在方括号中,这样python就知道你是在指明一个列表.一旦你创建了一个列表,你就可以添加,删除,或者是搜索列表中的项目.由于你可以增加或删除项目,我们说列表是可变的数据类型,即这种类型是可以被改变的,并且列表是可以嵌套的.实例:#coding=utf-8animalslist=['fox','tiger','ra

Python 字典(Dictionary) items()方法-以列表返回可遍历的(键, 值) 元组数组

描述 Python 字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组. 语法 items()方法语法: dict.items() 参数 NA. 返回值 返回可遍历的(键, 值) 元组数组. 实例 以下实例展示了 items()函数的使用方法: #!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7} print "Value : %s" % dict.items() 以上实例输出结果为: Value

Python字典按值排序、包含字典的列表按字典值排序的方法

#-*- encoding=utf-8 -*- import operator #按字典值排序(默认为升序) x = {1:2, 3:4, 4:3, 2:1, 0:0} sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1)) print sorted_x #[(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)] #如果要降序排序,可以指定reverse=True sorted_x = sorted(x.i