Python知识分享网 - 专业的Python学习网站 学Python,上Python222
Python 字典dict
匿名网友发布于:2023-09-12 10:43:29
(侵权举报)

Python 7天快速入门完整视频教程https://www.bilibili.com/video/BV1o84y1Z7J1

 

 

Python    字典dict

 

 

字典dict

 

字典也是Python提供的一种常用的数据结构,它用于存放具有映射关系的数据。

 

字典的定义

 

比如有成绩表数据——语文:68,数学:98,英语: 76,这组数据看上去像两个列表,但这两个列表的元素之间有一定的关联关系。如果单纯使用两个列表来保存这组数据,则无法记录两组数据之间的关联关系。

为了保存具有映射关系的数据,Python提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为key;另一组数据可通过key来访问,被称为 value。形象地看,字典中key和 value的关联关系如下图所示。

Python    字典dict  图1

 

字典的定义;

字典赋值定义

dict1={ key:value , key:value , ... , key:value }

空字典定义

dict2={}

dict3=dict()

案例:

 

# 字典赋值定义
dict1 = {"语文": 68, "数学": 98, "英语": 76}
print(f"dict1={dict1},type={type(dict1)}")

# 空字典定义
dict2 = {}
dict3 = dict()
print(f"dict2={dict2},type={type(dict2)}")
print(f"dict3={dict3},type={type(dict3)}")

 

输出:

 

dict1={'语文': 68, '数学': 98, '英语': 76},type=<class 'dict'>
dict2={},type=<class 'dict'>
dict3={},type=<class 'dict'>

 

注意点:key不能重复,否则新的key:value会覆盖老的key:value

 

dict4 = {"语文": 68, "数学": 98, "英语": 76, "数学": 100}
print(f"dict4={dict4},type={type(dict4)}")

 

运行结果:

 

dict4={'语文': 68, '数学': 100, '英语': 76},type=<class 'dict'>

 

 

字典的嵌套

 

复杂业务逻辑下,我们可以通过字典的嵌套。

字典的key和value可以是任意数据类型,但是key不能是字典类型

我们举例,设计学生的成绩单。

 

dict5 = {
    "张三": {"语文": 58, "数学": 38, "英语": 16},
    "李四": {"语文": 78, "数学": 58, "英语": 96},
    "王五": {"语文": 68, "数学": 98, "英语": 76}
}
print(f"dict5={dict5},type={type(dict5)}")

 

 

字典的常用方法

 

1,通过key值来获取对应的value 语法:字典["Key"] 也可以单引号,如果访问的key在字典里不存在,则报错;

增强方法:get("key"),根据key获取对应的value值。假如不存在,不报错,返回None

 

# 通过key值来获取对应的value
dict1 = {"语文": 68, "数学": 98, "英语": 76}
print(dict1["语文"])
print(dict1['数学'])
print(dict1["英语"])
print(dict1["体育"])
print(dict1.get("语文"))

dict2 = {
    "张三": {"语文": 58, "数学": 38, "英语": 16},
    "李四": {"语文": 78, "数学": 58, "英语": 96},
    "王五": {"语文": 68, "数学": 98, "英语": 76}
}
print(dict2["张三"]["数学"])
print(dict2["王五"]['英语'])

 

2,新增或者修改元素 语法 字典["Key"]=Value 如果key不存在,就是新增,如果key存在,就是修改。

update("{key:value}") 功能一样

update("{key1:value1,key2:value2}") 但是可以一次操作多个键值对

 

dict3 = {"语文": 68, "数学": 98, "英语": 76}
# key不存在,新增元素
dict3["体育"] = 77
print(dict3)
# key存在,修改元素
dict3["数学"] = 55
print(dict3)
dict3.update({'语文': 10})
dict3.update({'计算机': 50})
print(dict3)
dict3.update({'语文': 20, '计算机2': 50})
print(dict3)

 

运行输出:

 

{'语文': 68, '数学': 98, '英语': 76, '体育': 77}
{'语文': 68, '数学': 55, '英语': 76, '体育': 77}
{'语文': 10, '数学': 55, '英语': 76, '体育': 77, '计算机': 50}
{'语文': 20, '数学': 55, '英语': 76, '体育': 77, '计算机': 50, '计算机2': 50}

 

3,删除元素。语法 字典.pop("Key") 字典中删除该key:value元素,然后方法返回该key的Value

 

dict4 = {"语文": 68, "数学": 98, "英语": 76}
print(dict4.pop("数学"))
print(dict4)

 

运行输出:

 

98
{'语文': 68, '英语': 76}

 

4,清空元素。语法:clear()

 

dict5 = {"语文": 68, "数学": 98, "英语": 76}
dict5.clear()
print(dict5)

 

5,获取所有key。语法 字典.keys()。返回值类型的是 dict_keys 类对象

 

dict6 = {"语文": 68, "数学": 98, "英语": 76}
print(f"keys={dict6.keys()},type={type(dict6.keys())}")

 

运行输出:

 

keys=dict_keys(['语文', '数学', '英语']),type=<class 'dict_keys'>

 

6,遍历字典 先获取字典的keys,然后遍历keys,通过key获取字典值

 

dict7 = {"语文": 68, "数学": 98, "英语": 76}
keys = dict7.keys()
for key in keys:
    value = dict7[key]
    print(key, value)

 

运行输出:

 

语文 68
数学 98
英语 76

 

遍历方式2 遍历字典,每次拿到的也是key 以后我们就用这种简单方式,不用获取keys

 

for key in dict7:
    value = dict7[key]
    print(key, value)

 

运行输出:

 

语文 68
数学 98
英语 76

 

7,统计字典元素的总数量,len(字典)

 

dict8 = {"语文": 68, "数学": 98, "英语": 76}
print(len(dict8))

 

 

作业:

dict1 = { "张三": {"语文": 58, "数学": 38, "英语": 16}, "李四": {"语文": 78, "数学": 58, "英语": 96}, "王五": {"语文": 68, "数学": 98, "英语": 76} }

通过循环嵌套,打印出所有学生的各科成绩。

 

 

转载自: