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直接使用不会出现该问题

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • 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和set的背后小秘密

    目录 Python里的dict和set的效率有多高? 字典中的散列表 1.散列值和相等性 散列表算法 dict的实现及其导致的结果 1.键必须死可散列的 2.字典在内存上的开销巨大 3.键查询很快 4.键的次序取决于添加顺序 5.往字典里添加新键可能会改变已有键的顺序 set的实现及其导致的结果 总结 Python里的dict和set的效率有多高? 为什么它们是无序的? 为什么并不是所有的Python对象都可以当作dict的键或set里的元素? 为什么dict的键和set的元素的顺序是根据它们被

  • 详解Python中的Dict 2

    目录 dict 的元素定位(键/值定位)和遍历 dict的复制(拷贝) 总结 学委前面展示dict的概念和增删查改!这次我们把其他函数介绍补充了. dict 的元素定位(键/值定位)和遍历 dict这种对象我们可以通过 keys() 获取所有的键的列表; dict这种对象我们可以通过 values() 获取所有的值的列表. 这样有列表我们可以遍历整个dict对象. 但是更多使用下面的风格: mydict = { 'name': 'leixuewei', 'date': '20211104' }

  • 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

    目录 什么是dict? 我们下面看看dict的增删查改 总结 什么是dict? dict全称为dictionary(字典),人如其名,像字典一样可以根据索引定位到特定的文字. 在python的dict中,我们可以通过key来定位到特定的value. 如上图,这就是dict的内部结构.key vs value 这样的配对,key3再次套娃嵌套内部取出来也是一个dict. 如此反复,一个dict可以变得很多层次,但是特征还是key value一一配对,只是value能是普通类型也能是dict. 之前

  • 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的使用误区你知道吗

    这两天写代码是用了列表里面追加字典的操作,代码如下: 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}

随机推荐