Python 列表添加字典,如果key值存在则啥也不做
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 列表添加字典,如果key值存在则啥也不做相关的知识,希望对你有一定的参考价值。
例如:list=[a:1,b:1,c:1],var1=d:1,var2=a:2
list.append(var1) => 添加成功,list=[a:1,b:1,c:1,d:1]
list.?(var2) => 添加失败,因为跟已有元素的键值重复,list=[a:1,b:1,c:1]
python或者django有什么自带的方法可以实现这个功能么?或者比较简单的写法?我知道可以把列表中的元素一个一个取出来去判断,但是这样代码太冗余而且效率也不高
list1 = 'a':1,'b':1,'c':1
存储成字典就容易判断了啊
if 'd' not in list1:
list1['d'] = 1 参考技术A 自定义一个类,重载__eq__方法,自带的只有set类型会检查元素是否重复,但是不符合你的要求.
Python字典键值对的添加和遍历
添加键值对首先定义一个空字典
>>> dic=
直接对字典中不存在的key进行赋值来添加
>>> dic['name']='zhangsan'
>>> dic
'name': 'zhangsan'
如果key或value都是变量也可以用这种方法
>>> key='age'
>>> value=30
>>> dic[key]=value
>>> dic
'age': 30. 'name': 'zhangsan'
这里可以看到字典中的数据并不是按先后顺序排列的,如果有兴趣,可以搜一搜数据结构中的——哈希表
从python3.7开始,字典按照插入顺序,实现了有序。修改一个已存在的key的值,不影响顺序,如果删了一个key后再添加该key,该key会被添加至末尾。标准json库的dump(s)/load(s)也是有序的
还可以用字典的setdefault方法
>>> dic.setdefault('sex','male')
'male'
>>> key='id'
>>> value='001'
>>> dic.setdefault(key,value)
'001'
>>> dic
'id': '001', 'age': 30. 'name': 'zhangsan', 'sex': 'male' 参考技术A 对列表中不存在的key直接进行赋值来添加
对列表中存在的,但是key和value都是变量的可以直接替换
有两种方法,分别如下所示:
以上是关于Python 列表添加字典,如果key值存在则啥也不做的主要内容,如果未能解决你的问题,请参考以下文章