Python字典提取_python字典键对应的值

Python字典提取_python字典键对应的值python字典操作提取key,valuedictionaryName[key]=value1.为字典增加一项2.访问字典中的值3、删除字典中的一项4、遍历字典5、字典遍历的key\value6、字典的标准操作符7、判断一个键是否在字典中8、python中其他的一些字典方法9、将两个字典合并a={‘a’:1,…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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

欢迎加入Python快速进阶QQ群:867300100

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’}

**10、字典多键值及重复键值的使用方法(详解) **
方案一

#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()

相关应用直通车:
自然语言处理:直通车
Nosql-mongodb:直通车

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180054.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 多线程锁的升级原理是什么?

    多线程锁的升级原理是什么?多线程锁的升级原理是什么?锁的级别从低到高:无锁->偏向锁->轻量级锁->重量级锁锁分级别原因:没有优化以前,sychronized是重量级锁(悲观锁),使用wait和notify、notifyAll来切换线程状态非常消耗系统资源;线程的挂起和唤醒间隔很短暂,这样很浪费资源,影响性能。所以JVM对sychronized关键字进…

    2022年6月21日
    37
  • “请在微信客户端打开链接”解决方案[通俗易懂]

    “请在微信客户端打开链接”解决方案[通俗易懂]1、“请在微信客户端打开链接”解决方案https://blog.csdn.net/weixin_41190571/article/details/829908392、微信调试工具无法点击授权按钮https://blog.csdn.net/Call_me_small_pure/article/details/801013073、微信web开发工具https://mp.weixin.qq.c…

    2022年5月6日
    295
  • struts2综合漏洞扫描工具

    struts2综合漏洞扫描工具python扫描工具更新2022-4-161.添加了S2-062漏洞利用其实是对S2-061漏洞的绕过支持命令执行,Linux反弹shell,windows反弹shell。2.解决了了Windows反弹shell的功能底层原理:解决了有效负载Runtime.getRuntime().exec()执行复杂windows命令不成功的问题。详情文章:https://www.yuque.com/docs/share/0abe4b7e-45fd-4902-a23a-ad51ab72cbb9?#《使用j

    2022年7月19日
    13
  • java笔试题库及答案,看完必懂

    java笔试题库及答案,看完必懂阿里面试总结1.一面首先确认对阿里的意向度;其次面试官会针对你曾经做过的项目来做具体技术的交流,你对项目细节是不是掌握到位,以及java技术基础和原理掌握程序,比如并发编程以及数据库和JVM三个方面,也会交流到分布式、线程池的实现等等(重点考察有没有深入钻研技术和技术上的亮点);2.二面技术面,根据项目深入的了解技术实力,了解你的知识面、问题解决能力以及技术灵活运用能力,也通过这一过程考察团队合作能力、学习主动性和创新性,可以挑选2-3个做过的有典型性的项目做一个仔细技术回顾和自己独到的理解(这是加

    2022年7月8日
    22
  • C++中this指针的本质

    C++中this指针的本质一直以来对C++中的this不理解,只知道在构造函数中,如果构造函数的参数和类成员的名字一样的话,就可以用this指针来区分,如:this->a=a;一直以来都有这个疑问:this究竟是什么?我们明明没有定义这个this,但是我们可以直接用而编译器不会报错。今天来解决这个疑问。从刚才的代码中,我们用”this->”而不是”this.”就说明this是一个指针,而我们知道,在C、C++中,指针

    2022年5月16日
    45
  • FPN总结[通俗易懂]

    FPN总结[通俗易懂]经典的twostage检测网络有:fasterRCNN和SSD,它们用于做bboxregression的模型各有不同,fasterRCNN是VGG,featuremap经过不断地下采样,最后的featuremap送入RPN层,这样不断地下采样使得小检测框的像素非常小,无法进行训练的到,得到很好的结果。而SSD则是分别对不同尺寸的featuremap进行bboxregression,…

    2022年5月2日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号