Python dict的使用误区你知道吗
这两天写代码是用了列表里面追加字典的操作,代码如下:
tmp_datas = [{'a': 18}, {'a':20}] def test(tmp_datas): tmp_li = [] tmp_dic = {} for data in tmp_datas: tmp_dic['age'] = data['a'] tmp_li.append(tmp_dic) print(tmp_li) test(tmp_datas)
由于字典是可变数据类型,所以得到的结果为:
# [{'age': 20}, {'age': 20}]
解决办法:把tmp_di放在里面即可
tmp_datas = [{'a': 18}, {'a':20}] def test(tmp_datas): tmp_li = [] for data in tmp_datas: tmp_dic = {} tmp_dic['age'] = data['a'] tmp_li.append(tmp_dic) print(tmp_li) test(tmp_datas)
注:如果tmp_datas直接使用不会出现该问题
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!
相关推荐
-
python--字典(dict)和集合(set)详解
目录 一.集合 1.集合定义 2.创建集合 3.去重 4.集合增删 5.关系运算 6.排序 7.frozenset 8.练习 9.特性 二.字典 1.字典定义 2.字典打印 3.字典元素删除 4.setdefault 5.defaultdict 总结 一.集合 1.集合定义 集合(set)是一个无序的不重复元素序列. 2.创建集合 使用大括号 { } 或者 set() 函数创建集合; 创建一个空集合必须用 set() 而不是 { } { } 是用来创建一个空字典. s = {1,2,3,4} p
-
Python字典 dict几种遍历方式
目录 1.使用 for key in dict遍历字典 2.使用for key in dict.keys () 遍历字典的键 3.使用 for values in dict.values () 遍历字典的值 4.使用 for item in dict.items () 遍历字典的键值对 5.使用 for key,value in dict.items () 遍历字典的键值对 1.使用 for key in dict遍历字典 可以使用for key in dict遍历字典中所有的键 x = {'a
-
详解Python中的Dict 2
目录 dict 的元素定位(键/值定位)和遍历 dict的复制(拷贝) 总结 学委前面展示dict的概念和增删查改!这次我们把其他函数介绍补充了. dict 的元素定位(键/值定位)和遍历 dict这种对象我们可以通过 keys() 获取所有的键的列表; dict这种对象我们可以通过 values() 获取所有的值的列表. 这样有列表我们可以遍历整个dict对象. 但是更多使用下面的风格: mydict = { 'name': 'leixuewei', 'date': '20211104' }
-
Python里的dict和set的背后小秘密
目录 Python里的dict和set的效率有多高? 字典中的散列表 1.散列值和相等性 散列表算法 dict的实现及其导致的结果 1.键必须死可散列的 2.字典在内存上的开销巨大 3.键查询很快 4.键的次序取决于添加顺序 5.往字典里添加新键可能会改变已有键的顺序 set的实现及其导致的结果 总结 Python里的dict和set的效率有多高? 为什么它们是无序的? 为什么并不是所有的Python对象都可以当作dict的键或set里的元素? 为什么dict的键和set的元素的顺序是根据它们被
-
详解Python中的Dict
目录 什么是dict? 我们下面看看dict的增删查改 总结 什么是dict? dict全称为dictionary(字典),人如其名,像字典一样可以根据索引定位到特定的文字. 在python的dict中,我们可以通过key来定位到特定的value. 如上图,这就是dict的内部结构.key vs value 这样的配对,key3再次套娃嵌套内部取出来也是一个dict. 如此反复,一个dict可以变得很多层次,但是特征还是key value一一配对,只是value能是普通类型也能是dict. 之前
-
python-字典dict和集合set
目录 1.字典 字典的相关操作 获取字典的长度 2.集合 1.字典 字典是python中的一种数据结构. 它的内容由**键-值(key-value)**的方式存在. dict拥有良好的查询速度,dict中值可以是任意python对象,对此对一个key赋value,后面的value会把前面的value覆盖. 字典的相关操作 # 字典中的内容放在大括号{}里,键值之间用冒号分隔,键值队之间用逗号 # method 1 myd = {'name': 'lmy', 'age': '19'} l = [(
-
Python dict的使用误区你知道吗
这两天写代码是用了列表里面追加字典的操作,代码如下: tmp_datas = [{'a': 18}, {'a':20}] def test(tmp_datas): tmp_li = [] tmp_dic = {} for data in tmp_datas: tmp_dic['age'] = data['a'] tmp_li.append(tmp_dic) print(tmp_li) test(tmp_datas) 由于字典是可变数据类型,所以得到的结果为: # [{'age': 20}, {'
-
python dict.get()和dict['key']的区别详解
先看代码: In [1]: a = {'name': 'wang'} In [2]: a.get('age') In [3]: a['age'] --------------------------------------------------------------------------- KeyError Traceback (most recent call last) <ipython-input-3-a620cb7b172a> in <module>() ----&g
-
python dict 字典 以及 赋值 引用的一些实例(详解)
最近在做一个很大的数据库方面的东东,要用到根据数值来查找,于是想到了python中的字典,平时没用过dict这个东东 用的最多的还是 list 和 tuple (网上查 用法一大堆) 看了一下创建字典的方法: 方法1: dict = {'name': 'earth', 'port': 80} 方法2: fdict = dict((['x', 1], ['y', 2])) 方法3: ddict = {}.fromkeys(('x', 'y'), -1) 都实验了一下这些方法,发现不好用,做不出来自
-
python dict 相同key 合并value的实例
如下所示: # #### dict中将key相同的字典合并在一个对象里 """ a = {"a": 1, "b": 2, "c": 1} for k, v in a.iteritems(): tmp.setdefault(v, []).append(k) """ tmp = {} objs = OnlineScoringTeacher.objects.filter( entry__mes
-
Python Dict找出value大于某值或key大于某值的所有项方式
对于一个Dict: test_dict = {1:5, 2:4, 3:3, 4:2, 5:1} 想要求key值大于等于3的所有项: print({k:v for k, v in test_dict.items() if k>=3}) 得到 {3: 3, 4: 2, 5: 1} 想要求value值大于等于3的所有项: print({k:v for k, v in test_dict.items() if v>=3}) {1: 5, 2: 4, 3: 3} 如果想要求k或者v某一个就取一个即可:
-
python dict乱码如何解决
定义字典并直接输出,结果输出结果中文是乱码展示 d={'name':'lily','age':18,'sex':'女','no':1121} print d 输出结果: {'age': 18, 'no': 1121, 'name': 'lily', 'sex': '\xe5\xa5\xb3'} 解决方法: d={'name':'lily','age':18,'sex':'女','no':1121} print json.dumps(d,encoding='utf-8',ensure_ascii=
-
Python dict的常用方法示例代码
常用方法 浅拷贝copy a = {"ilpy1": {"company": "aaa"}, "ilpy2": {"company": "bbb"} } new_dict = a.copy() new_dict["ilpy1"]["company"] = "wtf" print(new_dict) print(a) print(
-
python dict如何定义
1.字典的定义 字典的格式:字典名 = {key1:value1, key2:value2,...} 字典是无序的,是可变的数据类型 字典的key不能是可变的数据类型(列表 字典) 字典的key是不能重复的,但value可以 例:my_dict = {"name": "小明", "age": 19} 定义一个空的字典:my_dict = {} 或 my_dict = dict() 2.字典的常见操作 定义一个字典 my_dict = {&
-
关于Python dict存中文字符dumps()的问题
Background 之前数据库只区分了Android,IOS两个平台,游戏上线后现在PM想要区分国服,海外服,港台服.这几个字段从前端那里的接口获得,code过程中发现无论如何把中文的value丢到dict中存到数据库中就变成类似这样**"\u56fd\u670d"** Solution 1.首先怀疑数据库编码问题,但看了一下数据库其他字段有中文格式的,所以要先check数据库(MySQL)的字符编码. 可以看到明明就TMD是utf-8啊,所以一定不是数据库层出现的问题,回到代码de
-
python dict remove数组删除(del,pop)
比如代码 binfo = {'name':'jay','age':20,'python':'haha'} print binfo.pop('name')#pop方法删除键,并且返回键对应的值 print binfo##输出结果:{'python': 'haha', 'age': 20} del binfo['python']##内置方法删除元素 print binfo##输出结果:{'age': 20}
随机推荐
- MySQL exists 和in 详解及区别
- java多线程编程学习(线程间通信)
- WPF的数据绑定详细介绍
- Android开发中滑动分页功能实例详解
- php结合正则获取字符串中数字
- Android使用ListView批量删除item的方法
- PHP的cURL库功能简介 抓取网页、POST数据及其他
- 关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
- Powershell实现获取电脑序列号功能脚本分享
- Win 2003架设邮件服务器
- JS使用for循环遍历Table的所有单元格内容
- JavaMail入门教程之解析邮件(5)
- 详解Java的位操作符
- 详解android webView独立进程通讯方式
- asp.net StringBuilder的用法 实例代码
- Android 登录密码信息进行RSA加密示例
- CI框架文件上传类及图像处理类用法分析
- 两分钟快速让你明白什么是ERP
- 远想互联为您提供30M免费空间服务
- BIND&DNS内部培训教程3