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

总结

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

时间: 2022-01-13

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

目录 什么是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.创建集合 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和集合set

目录 1.字典 字典的相关操作 获取字典的长度 2.集合 1.字典 字典是python中的一种数据结构. 它的内容由**键-值(key-value)**的方式存在. dict拥有良好的查询速度,dict中值可以是任意python对象,对此对一个key赋value,后面的value会把前面的value覆盖. 字典的相关操作 # 字典中的内容放在大括号{}里,键值之间用冒号分隔,键值队之间用逗号 # method 1 myd = {'name': 'lmy', 'age': '19'} l = [(

python 字典(dict)按键和值排序

python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行: 1 下面的是按照value的值从大到小的顺序来排序. dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0} dict= sorted(dic.items(), key=lambda d:d[1], reverse = True) print(dict) 输出的结果: [('aa', 74),

python字典DICT类型合并详解

本文为大家分享了python字典DICT类型合并的方法,供大家参考,具体内容如下 我要的字典的键值有些是数据库中表的字段名, 但是有些却不是, 我需要把它们整合到一起, 因此有些这篇文章.(非得凑够150个字,我也是没有办法,扯一点昨天的问题吧,话说python中的session就只能在requests库中发挥作用?就不能想asp.net中那样存值,然后设置过期时间以便验证?我原本是想在python中找个与asp.net中的cache差不多功能的库,结果,缓存那块python好像就是redis和

Python字典生成式、集合生成式、生成器用法实例分析

本文实例讲述了Python字典生成式.集合生成式.生成器用法.分享给大家供大家参考,具体如下: 字典生成式: 跟列表生成式一样,字典生成式用来快速生成字典,不同的是,字典需要两个值 #d = {key: value for (key, value) in iterable} d1 = {'x': 1, 'y': 2, 'z': 3} d2 = {k: v for (k, v) in d1.items()} print(d2) 集合生成式: 集合生成式格式和列表生成式类似,不过用的是大括号: s1

Python 字典dict使用介绍

Python字典的创建 方法一: >>> blank_dict = {} >>> product_dict = {'MAC':8000,'Iphone':5000, 'ipad':4000, 'mp3': 300} >>> product_dict {'ipad': 4000, 'MAC': 8000, 'Iphone': 5000, 'mp3': 300} >>> blank_dict,product_dict ({}, {'ipa

python 字典(dict)遍历的四种方法性能测试报告

python中,遍历dict的方法有四种.但这四种遍历的性能如何呢?我做了如下的测试 l = [(x,x) for x in xrange(10000)] d = dict(l) from time import clock t0=clock() for i in d: t = i + d[i] t1=clock() for k,v in d.items(): t = k + v t2=clock() for k,v in d.iteritems(): t = k + v t3=clock()

Python字典及字典基本操作方法详解

本文实例讲述了Python字典及字典基本操作方法.分享给大家供大家参考,具体如下: 字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字.字符串.元组,这种结构类型也称之为映射.字典类型是Python中唯一內建的映射类型,基本的操作包括如下: (1)len():返回字典中键-值对的数量: (2)d[k]:返回关键字对于的值: (3)d[k]=v:将值关联到键值k上: (4)del d[k]:删除键值为k的项: (5)key in d:键值key是否在d中,是返回True,否则返回Fals

python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法

字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 : 字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的:但键不行,如果同一个键被赋值两次,后一个值会被记住. 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组(列表这样的可变类型不能作为键). 一.字典的创建.访问: dict = {'Name': 'Zara', 'Age': 7,

python通过字典dict判断指定键值是否存在的方法

本文实例讲述了python通过字典dict判断指定键值是否存在的方法.分享给大家供大家参考.具体如下: python中有两种方法可以判断指定的键值是否存在,一种是通过字典对象的方法 has_key 判断,另外一种是通过 in 方法,下面是详细的范例. d={'site':'http://www.jb51.net','name':'jb51','is_good':'yes'} #方法1:通过has_key print d.has_key('site') #方法2:通过in print 'body'

python实现字典(dict)和字符串(string)的相互转换方法

本文实例讲述了python实现string和dict的相互转换方法.分享给大家供大家参考,具体如下: 字典(dict)转为字符串(string) 我们可以比较容易的将字典(dict)类型转为字符串(string)类型. 通过遍历dict中的所有元素就可以实现字典到字符串的转换: for key, value in sample_dic.items(): print "\"%s\":\"%s\"" % (key, value) 字符串(string

python使用点操作符访问字典(dict)数据的方法

本文实例讲述了python使用点操作符访问字典(dict)数据的方法.分享给大家供大家参考.具体分析如下: 平时访问字典使用类似于:dict['name']的方式,如果能通过dict.name的方式访问会更方便,下面的代码自定义了一个类提供了这种方法. class DottableDict(dict): def __init__(self, *args, **kwargs): dict.__init__(self, *args, **kwargs) self.__dict__ = self de