python 字典操作提取key,value的方法

时间:2021-05-22

python 字典操作提取key,value dictionaryName[key] = value

1.为字典增加一项


2.访问字典中的值


3、删除字典中的一项


4、遍历字典


5、字典遍历的key\value


6、字典的标准操作符


7、判断一个键是否在字典中


8、python中其他的一些字典方法



9、将两个字典合并

a={'a':1,'b':2,'c':3}b= {'aa':11,'bb':22,'cc':33}#方法一print(dict(a,**b))#方法二 这其实就是在内存中创建两个列表,再创建第三个列表,拷贝完成后,创建新的dict,删除掉前三个列表。这个方法耗费性能,而且对于python3,这个无法成功执行,因为items()返回是个对象。print(dict(list(a.items())+list(b.items())))#方法三c={}c.update(a)c.update(b)print(c)#方法四 python 3.5支持,可以存在重复键值,比如说:a={'a':1,'b':2,'c':3,'aa':12}会报错TypeError: print() got multiple values for keyword argument 'aa'print(**a,**b) 他们的输出结果都是:{'bb': 22, 'cc': 33, 'aa': 11, 'a': 1, 'b': 2, 'c': 3}

注意如果存在相同键值,比如说:

a={'a':1,'b':2,'c':3,'aa':12} b= {'aa':11,'bb':22,'cc':33}

那么方法一\二\三得到结果为

{'cc': 33, 'a': 1, 'bb': 22, 'c': 3, 'b': 2, 'aa': 11}

而方法四则会报错:

TypeError: print() got multiple values for keyword argument ‘aa'

10、key和value互换

方法一:

#!/usr/bin/env python3# -*- coding: utf-8 -*- dict_ori = {'A':1, 'B':2, 'C':3}dict_new = {value:key for key,value in dict_ori.items()}print(dict_new)

{1: ‘A', 2: ‘B', 3: ‘C'}

方法二:

使用zip方法

#!/usr/bin/env python3# -*- coding: utf-8 -*- dict_ori = {'A':1, 'B':2, 'C':3}dict_new2= dict(zip(dict_ori.values(), dict_ori.keys()))print(dict_new2)

{1: ‘A', 2: ‘B', 3: ‘C'}

11、字典多键值及重复键值的使用方法(详解)

方案一

#encoding=utf-8print ('中国')#字典的一键多值print('方案一 list作为dict的值 值允许重复' ) d1={}key=1value=2d1.setdefault(key,[]).append(value)value=2d1.setdefault(key,[]).append(value)print (d1)#获取值print ('方案一 获取值')print (list(d1[key]) )print( '方案一 删除值,会留下一个空列表' )d1[key].remove(value)d1[key].remove(value)print (d1 )print ('方案一 检查是否还有一个值' )print (d1.get(key,[]) )

方案一输出结果

中国
方案一 list作为dict的值 值允许重复
{1: [2, 2]}
方案一 获取值
[2, 2]
方案一 删除值,会留下一个空列表
{1: []}
方案一 检查是否还有一个值
[]

方案二

print ('方案二 使用子字典作为dict的值 值不允许重复')d1={}key=1keyin=2value=11d1.setdefault(key,{})[keyin]=valuekeyin=2value=22d1.setdefault(key,{})[keyin]=valuekeyin=3value=33d1.setdefault(key,{})[keyin]=valueprint (d1 )print ('方案二 获取值' )print (list(d1[key]) )print ('方案二 删除值,会留下一个空列表' )del d1[key][keyin]keyin=2del d1[key][keyin]print (d1)print ('方案二 检查是否还有一个值')print (d1.get(key,()) )

方案二输出结果

方案二 使用子字典作为dict的值 值不允许重复
{1: {2: 22, 3: 33}}
方案二 获取值
[```2, 3]
方案二 删除值,会留下一个空列表
{1: {}}
方案二 检查是否还有一个值
{}

方案三

print ('方案三 使用set作为dict的值 值不允许重复')d1={} key=1value=2d1.setdefault(key,set()).add(value)value=2d1.setdefault(key,set()).add(value)value=3d1.setdefault(key,set()).add(value)print ('方案三 获取值' )print (list(d1[key]) )print ('方案三 删除值,会留下一个空列表')d1[key].remove(value)value=2d1[key].remove(value)print (d1 )print ('方案三 检查是否还有一个值' )print (d1.get(key,()) )

输出结果:

方案三 使用set作为dict的值 值不允许重复
{1: {2, 3}}
方案三 获取值
[2, 3]
方案三 删除值,会留下一个空列表
{1: set()}
方案三 检查是否还有一个值
set()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章