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有什么自带的方法可以实现这个功能么?或者比较简单的写法?我知道可以把列表中的元素一个一个取出来去判断,但是这样代码太冗余而且效率也不高

为什麽不把 list 存储成一个字典列表呢?
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值存在则啥也不做的主要内容,如果未能解决你的问题,请参考以下文章

如果不存在,如何创建列表,如果不存在,如何添加到列表中

Python 字典(Dictionary)

setdefault() python

字符串 字典 列表的常用词

Python字典键值对的添加和遍历

Python 字典(Dictionary) setdefault()方法