创建,添加,修改

# 可以创建空的字典
my_dict={}# 可以添加一对键值
my_dict["new_key"] = "new_value"# 可以添加多对键值对
my_dict.update({"pantry": 22, "guest room": 25, "patio": 34})# 可以复写字典中已有的值
my_dict["patio"]=22
my_dict.update({"pantry": 12, "guest room": 15})

检查是否存在指定key

如果要判断字典中是否存在指定键值对,首先应判断字典中是否有对应的键。
而,判断字典是否包含指定的键,可以使用 in 或 not in 运算符。

a = {'数学': 95, '语文': 89, '英语': 90}'数学' in a             # 结果为:True
'物理' in a             # 结果为:False

复制

dict.copy() 方法用于返回一个具有相同键值对的新字典

删除

使用del 语句:del dict['key'],但是del 语句没有返回结果

dict.pop() 方法:获取指定 key 对应的 value,并删除这个键值对

a = {'数学': 95, '语文': 89, '英语': 90}del a['语文']           # 没有返回结果,查看a的结果为 {'数学': 95, '英语': 90}
a.pop("语文")           # KeyError: '语文'(因为已经没有key='语文'的键值对了)
a.pop("数学")           # 结果为:95
a                       # 结果为:{'英语': 90}

需要注意的是:我们要避免key值不存在的情况,所以使用 dict.pop("key" , 指定的返回值)函数,如果键值不存在,还可以指定要返回的值

取值

1. 查看字典信息:所有条目/所有key值/所有value值

(1).items():查看字典中所有条目,返回可遍历的所有(key, value) 元组
(2).keys():查看字典中所有key值, 返回字典中所有的key值的迭代器
(3).values() :查看字典中所有value值,返回字典中所有的value值的迭代器

my_dict = {'Name': 'Runoob', 'Age': 7}my_dict.items()         # 结果为:dict_items([('Name', 'Runoob'), ('Age', 7)])
my_dict.keys()              # 结果为:dict_keys(['Name', 'Age'])
my_dict.values()            # 结果为:dict_values(['Runoob', 7])

其中:迭代器中的元素没有index,所以不能单独取值;只打印查看或者遍历元素

如果想要对其进行index操作,要先将这个迭代器使用.list()方法**序列化**

# 对key值的迭代器进行了“序列化“后进行索引操作,但是对value的迭代器没有序列化操作,观察结果:报错def add_ten(my_dict):list_key=list(my_dict.keys())     # 对key值的迭代器进行了“序列化“list_value=my_dict.values()           # 但是对value的迭代器没有序列化操作for i in range(len(list_key)):my_dict[list_key[i]]=list_value[i]+10          # 上面讲过的“对已有值的复写”return my_dictionaryTypeError: 'dict_values' object does not support indexing

2. 取字典中某个值:

(1)根据key,找对应的value:dict ["key"]

zodiac_elements = {"water": ["Cancer", "Scorpio", "Pisces"],
"fire": ["Aries", "Leo", "Sagittarius"],"earth": ["Taurus", "Virgo", "Capricorn"], "air":["Gemini", "Libra", "Aquarius"]}
print(zodiac_elements["energy"])# 打印结果出错
Traceback (most recent call last):File "script.py", line 4, in <module>print(zodiac_elements["energy"])
KeyError: 'energy'

为了避免 KeyError , 我们可以检查当前需要被取value的key是否在字典中,我们还可以使用try/except,但是我们无法将可能被调用的每个键值都添加到 try/except 中,所以我们使用.get( 'key' , 指定的返回值) 。

dict.get ( ‘key’ , 指定的返回值):如果key值存在则返回对应的value;但是如果不存在,还可以指定要返回的值。

building_heights = {"Burj Khalifa": 828, "Shanghai Tower": 632, "Abraj Al Bait": 601, "Ping An": 599, "Lotte World Tower": 554.5, "One World Trade": 541.3}building_heights.get("Shanghai Tower")         # 结果为632
building_heights.get('Shanghai Tower', 0)     # 结果为632
building_heights.get('Mt Olympus', 0)         # 结果为0

python3 字典 dict 创建 添加 修改 复制 取值 删除相关推荐

  1. Xcode快捷键修改 复制一行、删除一行

    快速目录 Xcode快捷键修改 复制一行.删除一行 0.移动选中行 1.修改权限 2.修改快捷键配置文件 复制一行 删除一行 3.设置修改Xcode快捷键 4.其它注意 参看 Xcode快捷键修改 复 ...

  2. python学习-字典(哈希表、创建、插值、取值、keys、values、items、copy、fromkeys)

    字典 字典的创建 字典的使用 字典的创建 首先需要注意,字典是由键值对(key=>value)组成,成对出现的,其中key是不能改变的值,如整数,浮点数,字符串,元组等 Python的字典实现使 ...

  3. python3 字典dict的综合运用(这是一段意外写出来的程序代码)

    介绍 计划和媳妇去云南旅游,媳妇让做一下预算,正好当时正在写python代码,就随手一个print(sum([-]))计算了出来,后来媳妇说分分类,有些是确定的,有些无法确定,就又加了些逻辑进去,媳妇 ...

  4. ElasticSearch创建、修改、获取、删除、索引Indice mapping和Index Template案例

    为什么80%的码农都做不了架构师?>>>    The best elasticsearch highlevel java rest api-----bboss ElasticSea ...

  5. 动态创建数组了解各种取值和取地址的问题以及感受内存地址

    image.png 源代码: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include "cd.h"//严重 ...

  6. 视图——概述 || 创建或者修改视图 || 查看视图 || 删除视图

    视图概述 视图(View)是一种虚拟存在的表. 视图并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的. 通俗的讲,视图就是一条SELECT语句执行后返回的结 ...

  7. Mysql之视图的创建、修改、查看、删除

    视图 一.视图的定义 MySQL 视图(View)是一种虚拟存在的表,同真实表一样,视图也由列和行构成,但视图并不实际存在于数据库中.行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时 ...

  8. 自学笔记十四:Matlab浮点型:创建和转换、取值范围、运算和精度问题

    1.浮点型的概念 浮点型分为单精度(single)浮点型和双精度(double)浮点型: IEEE浮点数算术标准(IEEE 754)是IEEE二进位浮点数算术标准(IEEE Standard for ...

  9. python3 字典 dict 常见用法总结(判断key是否存在)

    目录 一.创建字典 二.访问字典里的值 三.修改字典 四.删除字典元素 五.字典键的特性 六.字典内置函数&方法 七.判断python字典中key是否存在的 八.python字典按照value ...

最新文章

  1. 统计学 计算机论文,统计学专业论文范文
  2. 【UIDynamic例子】挂起的方块
  3. VTK与ITK的详细安装指南
  4. 【CSTC白皮书】分布式数据库发展路径研究(附下载)
  5. 嵌入式开发过程中结构体字节对齐问题pragma pack(1)
  6. phpcms注入漏洞之文件poster.php
  7. 【云快讯】《微软Sharepoint 2016 Beta版发布,强化混合云搜索功能》
  8. iscsi:IO操作流程(二)
  9. 重拾Java Network Programming(一)IO流
  10. 《汇编语言》第一章笔记
  11. 如何把qq挂到云服务器,云服务器挂QQ软件常用方法和注意问题
  12. python高斯求和函数_选择积分方法—高斯积分
  13. 红杉、IDG、北极光、顺为等投资大咖怎么看智能硬件
  14. 华为畅享10与10s有什么区别?哪个更好
  15. vxWorks6.6下基于vxBus的以太网驱动开发
  16. Android之ubuntu源码开发环境搭建笔记
  17. html图片自动适应窗口大小,使用CSS自动调整浏览器大小的图片大小
  18. 不得不说,还是这款开源工作流表单设计器较合心意!
  19. ProcDump+Mimikatz绕过杀毒软件抓密码
  20. 计算机考试 办公自动化,计算机等级考试,办公自动化考试试题

热门文章

  1. 互联网协议 — QUIC 快速 UDP 互联网连接
  2. RESTful_URI资源
  3. 几种USB控制器类型:OHCI,UHCI,EHCI,XHCI
  4. 电流环差分信号传送数字信号
  5. 向高手进阶,从 0 开始手写实现一个 RPC 框架!
  6. HTTP协议详解 转自小坦克
  7. 数值和字符串互相转换
  8. Jquery Ajax调用aspx页面方法
  9. linux下挂载U盘过程
  10. Linux三剑客之awk详解