1.定义

字典的关键字:dict

字典由多个键和其对应的值构成的 键—值 对组成,每个键值对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中。

{key1:value1,key2:value2,key3:value3}

在一个字典中:

  key的值是固定不变的,可以是字符串、数字、布尔值、元组。且key的值必须要唯一。

  value的值可以是任意类型。

  字典中的键值对是无序的,不存在索引概念。

例如:my_info = {"name":"测试小白", "sex":"male", "city":"杭州", "hobby":"旅游"}

2.字典的查询

读取字典当中的数据。根据key来读取值

语法:字典变量名[key]

例如:

my_info = {"name":"测试小白", "sex":"male", "city":"杭州", "hobby":"旅游"}
hobby = my_info["hobby"]
print(hobby) 结果:
旅游

3.字典的新增

如果要为 dict 添加 key-value 对,只需为不存在的 key 赋值即可。

语法:字典变量名[新的key] = new_value

my_info = {"name":"测试小白", "sex":"male", "city":"杭州", "hobby":"旅游"}
my_info["cation"] = "魔道祖师"
print(my_info) 结果:
{'city': '杭州', 'cation': '魔道祖师', 'name': '测试小白', 'hobby': '旅游', 'sex': 'male'}

4.字典的修改

对 dict 中存在的 key-value 对赋值,新赋的 value 就会覆盖原有的 value,这样即可改变 dict 中的 key-value 对。

语法:字典变量名[已有的key] = new_value

my_info = {"name":"测试小白", "sex":"male", "city":"杭州", "hobby":"旅游"}
my_info["hobby"] = "游泳,吃小龙虾"
print(my_info) 结果:
{'city': '杭州', 'name': '测试小白', 'hobby': '游泳,吃小龙虾', 'sex': 'male'}

5.字典的删除

删除一个字典用del命令或者pop来删除。

del语法:del 字典变量名[key]

pop语法:字典变量名.pop(key)

例如:

# del 字典变量名[key]
my_info = {"name":"测试小白", "sex":"male", "city":"杭州", "hobby":"旅游"}
del my_info["city"]
print(my_info) # 字典变量名.pop(key)
my_info = {"name":"测试小白", "sex":"male", "city":"杭州", "hobby":"旅游"}
my_info.pop("hobby")
print(my_info) 结果:
{'hobby': '旅游', 'sex': 'male', 'name': '测试小白'}
{'city': '杭州', 'sex': 'male', 'name': '测试小白'}

6.字典和json格式互转

json.loads(json_str) json字符串转换成字典
json.dumps(dict) 字典转换成json字符串
import json

# 定义一个字典结构的数据
data = {
'name': 'Bill',
'info': {'sex': 'male', 'age': 29, 'birth': '19900506'}
} # 将字典转换为json格式
data_json = json.dumps(data) # 查看json格式数据
print(data_json)
print('json数据的格式为:',type(data_json)) # 将json转换为字典
data_dict = json.loads(data_json) # 查看字典数据
print(data_dict)
print('字典数据的格式为:',type(data_dict)) 结果:
{"name": "Bill", "info": {"sex": "male", "age": 29, "birth": "19900506"}}
json数据的格式为: <class 'str'>
{'name': 'Bill', 'info': {'sex': 'male', 'age': 29, 'birth': '19900506'}}
字典数据的格式为: <class 'dict'>

7.清空字典clear()方法

clear() 用于清空字典中所有的 key-value 对,对一个字典执行 clear() 方法之后,该字典就会变成一个空字典。

语法:字典变量名.clear()

例如:

my_info = {"name":"测试小白", "sex":"male", "city":"杭州", "hobby":"旅游"}
my_info.clear()
print(my_info) 结果:
{}

8.字典的get()方法

get() 方法其实就是根据 key 来获取 value,它相当于方括号语法的增强版,当使用方括号语法访问并不存在的 key 时,字典会引发 KeyError 错误;

但如果使用 get() 方法访问不存在的 key,该方法会简单地返回 None,不会导致错误。

例如:

正常获取value值

# 正常获取value值
my_info = {"name":"测试小白", "sex":"male", "city":"杭州", "hobby":"旅游"}
print(my_info.get('name')) 结果:
测试小白

获取不存在的key的value值

# 正常获取value值
my_info = {"name":"测试小白", "sex":"male", "city":"杭州", "hobby":"旅游"}
print(my_info.get('name1')) 结果:
None

不使用get获取不存在的key的value值

# 正常获取value值
my_info = {"name":"测试小白", "sex":"male", "city":"杭州", "hobby":"旅游"}
print(my_info['name1']) 结果:
KeyError: 'name1'

9.字典的update()方法

update() 方法可使用一个字典所包含的 key-value 对来更新己有的字典。在执行 update() 方法时,如果被更新的字典中己包含对应的 key-value 对,那么原 value 会被覆盖;

如果被更新的字典中不包含对应的 key-value 对,则该 key-value 对被添加进去。

例如:

my_info = {"name":"测试小白", "sex":"male", "city":"杭州", "hobby":"旅游"}
my_info.update({'age':18, 'city':"北京"})
print(my_info) 结果:
{'sex': 'male', 'age': 18, 'name': '测试小白', 'hobby': '旅游', 'city': '北京'}

10.字典的items()、keys()、values()方法

items()、keys()、values() 分别用于获取字典中的所有 key-value 对、所有 key、所有 value。这三个方法依次返回 dict_items、dict_keys 和 dict_values 对象,Python 不希望用户直接操作这几个方法,但可通过 list() 函数把它们转换成列表。

例如:

my_info = {"name": "测试小白", "sex": "male", "city": "杭州", "hobby": "旅游", 'age': 18}
# 获取字典所有的key-value对,返回一个dict_items对象
ims = my_info.items()
# 将dict_items转换成列表
list_ims = list(ims)
print(list_ims)
# 访问第2个key-value对
print(list_ims[1]) # 获取字典所有的key,返回一个dict_keys对象
kys = my_info.keys()
# 将dict_keys转换成列表
list_kys = list(kys)
print(list_kys)
# 访问第2个key
print(list_kys[1]) # 获取字典所有的value,返回一个dict_values对象
vals = my_info.values()
# 将dict_values转换成列表
list_vals = list(vals)
print(list_vals)
# 访问第2个value
print(list(vals)[1]) 结果:
[('sex', 'male'), ('hobby', '旅游'), ('city', '杭州'), ('age', 18), ('name', '测试小白')]
('hobby', '旅游')
['sex', 'hobby', 'city', 'age', 'name']
hobby
['male', '旅游', '杭州', 18, '测试小白']
旅游

(04)-Python3之--字典(dict)操作的更多相关文章

  1. day 13 字典dict 操作

    1.len   键值对的个数 In [4]: nums = [11,22,33] In [6]: len(nums) Out[6]: 3 In [7]: infor = {"name&quo ...

  2. Python 字典dict操作定义

    字典是用大括号{ }来表示,它是python中最灵活的内置数据类型.它是一个无序的集合,通过键来存取值,而不能用索引. 字典的创建和使用 字典的组成:字典是由大括号{  }来包含其数据的,大括号内包含 ...

  3. python字典dict的增、删、改、查操作

    ## python字典dict的增.删.改.查操作dict = {'age': 18, 'name': 'jin', 'sex': 'male', }#增# dict['heigh'] = 185 # ...

  4. Python3 字典Dict(十三)

    Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 字典是另一种可变容器模型,且可存储任意类 ...

  5. python3 两层dict字典转置

    python3; 两层字典 dict =(type, dict2) dict2 = (k_value, index) dictss = { 10: {3: 1, 4: 2, 5: 3, 6: 4, 7 ...

  6. python中字典dict的操作

    字典可存储任意类型的对象,由键和值(key - value)组成.字典也叫关联数组或哈希表. dict = {' , 'C' : [1 , 2 , 3] } dict['A'] = 007 # 修改字 ...

  7. Dict字典的操作

    字典的操作 1.字典新增键值对 已存在内容的字典新增 alient_0 = {"color":"green",position:10} alient_0[&qu ...

  8. 第十六节,基本数据类型,字典dict

    字典 常用操作: 索引 新增 删除 键.值.键值对 循环 长度 字典由键值对组成,由一个键(名称)和 一个值组成,与列表和元组不同的是里面的元素是有键的(名称) 所以当要打印字典时,打印字典变量加[键 ...

  9. Python3 数据类型-字典

    字典是一种可变数据类型,且可存储任意类型对象. 字典使用大括号"{}"括起来,由键(key)和值(values)组成,键只能使用不可变类型定义,值可以使用可变类型{'键':'值'} ...

随机推荐

  1. CSS鼠标指针cursor样式

    参考来源:W3SCHOOL 有时我们需要在CSS布局时设定特定的鼠标指针样式,这时可以通过设定cursor来实现: url: 需使用的自定义光标的 URL. 注释:请在此列表的末端始终定义一种普通的光 ...

  2. 论文阅读: A Review of Robot Learning for Manipulation: Challenges, Representations, and Algorithms

    机器人学习操纵综述:挑战,表示形式和算法 1.介绍 因此,研究人员专注于机器人应如何学习操纵周围世界的问题. 这项研究的范围很广,从学习个人操作技巧到人类演示,再到学习适用于高级计划的操作任务的抽象描 ...

  3. (十一)、head--查看文件前若干部分,tail--查看文件后若干部分

    一.命令描述与格式 head用于查看文件前面部分,tail用于查看文件的末尾部分 格式:head/tail    [-选项]   文件 head选项: -c:处理文件若干字节数,加b.k.m -n:前 ...

  4. Weblogic命令执行漏洞(CVE-2018-2628)复现

    一.漏洞环境搭建 CVE-2018-2628影响的软件版本为: Weblogic 10.3.6.0 Weblogic 12.1.3.0 Weblogic 12.2.1.2 Weblogic 12.2. ...

  5. 超详细的第一个Servlet程序

    Servlet的第一个程序! 首先查看官方文档,来编写我们的第一段代码 1.先启动Tomcat,确保我们能够正常访问. 2.http://localhost:8080/examples/     查看 ...

  6. 广告计价方式:CPM,CPC,CPA

    转自知乎链接:https://www.zhihu.com/question/20416888/answer/15076251 1.CPM 收费最科学的办法是按照有多少人看到你的广告来收费.按访问人次收 ...

  7. ESP32 BLE蓝牙 微信小程序通信发送大于20字符数据

    由于微信小程序只支持BLE每次发送数据不大于20个字节,ESP32则有经典蓝牙.低功耗蓝牙两种模式. 要解决发送数据大于20个字节的问题,最简单实用的方式就是分包发送.如下图所示: 1.什么起始字符和 ...

  8. 解析STM32的库函数

    意法半导体在推出STM32微控制器之初,也同时提供了一套完整细致的固件开发包,里面包含了在STM32开发过程中所涉及到的所有底层操作.通过在程序开发中引入这样的固件开发包,可以使开发人员从复杂冗余的底 ...

  9. 原生小程序中实现将scss文件实时编译为wxss文件

    参考链接 全局安装gulp,方便以后直接执行gulp命令 npm install gulp -g 用原生小程序新建一个项目 在小程序根目录(app.js同级目录)中新建package.json文件 n ...

  10. 单细胞分析实录(3): Cell Hashing数据拆分

    在之前的文章里,我主要讲了如下两个内容:(1) 认识Cell Hashing:(2): 使用Cell Ranger得到表达矩阵.相信大家已经知道了cell hashing与普通10X转录组的差异,以及 ...