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

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-8

print ('中国')

#字典的一键多值

print('方案一 list作为dict的值 值允许重复' )

d1={}

key=1

value=2

d1.setdefault(key,[]).append(value)

value=2

d1.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=1

keyin=2

value=11

d1.setdefault(key,{})[keyin]=value

keyin=2

value=22

d1.setdefault(key,{})[keyin]=value

keyin=3

value=33

d1.setdefault(key,{})[keyin]=value

print (d1 )

print ('方案二 获取值' )

print (list(d1[key]) )

print ('方案二 删除值,会留下一个空列表' )

del d1[key][keyin]

keyin=2

del d1[key][keyin]

print (d1)

print ('方案二 检查是否还有一个值')

print (d1.get(key,()) )

方案二输出结果

方案二 使用子字典作为dict的值 值不允许重复

{1: {2: 22, 3: 33}}

方案二 获取值

[```2, 3]

方案二 删除值,会留下一个空列表

{1: {}}

方案二 检查是否还有一个值

{}

方案三

print ('方案三 使用set作为dict的值 值不允许重复')

d1={}

key=1

value=2

d1.setdefault(key,set()).add(value)

value=2

d1.setdefault(key,set()).add(value)

value=3

d1.setdefault(key,set()).add(value)

print ('方案三 获取值' )

print (list(d1[key]) )

print ('方案三 删除值,会留下一个空列表')

d1[key].remove(value)

value=2

d1[key].remove(value)

print (d1 )

print ('方案三 检查是否还有一个值' )

print (d1.get(key,()) )

输出结果:

方案三 使用set作为dict的值 值不允许重复

{1: {2, 3}}

方案三 获取值

[2, 3]

方案三 删除值,会留下一个空列表

{1: set()}

方案三 检查是否还有一个值

set()

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值