在 Python 中,数据容器是组织和管理数据的重要工具,字典作为其中一种基本的数据结构,具有独特的特性和广泛的应用。本章详细介绍了字典的定义、常用操作以及遍历方法。
本篇文章参考:黑马程序员
Python中字典和生活中字典十分相像:
①基本语法:
字典使用花括号“{}”,且使用逗号隔开各个元素,存储的元素是一个个键值对,每一个键值对包含Key和Value(用冒号分隔),键值对之间使用逗号分隔。
②特点:
# 定义字典
my_dict1={"小明":90,"小美":95,"小空":89,"小散":79}
# 定义空字典
my_dict2={}
my_dict3=dict()
print(f"字典1的内容为{my_dict1},类型为{type(my_dict1)}")
print(f"字典2的内容为{my_dict2},类型为{type(my_dict2)}")
print(f"字典3的内容为{my_dict3},类型为{type(my_dict3)}")
输出结果: 字典1的内容为{'小明': 90, '小美': 95, '小空': 89, '小散': 79},类型为<class 'dict'> 字典2的内容为{},类型为<class 'dict'> 字典3的内容为{},类型为<class 'dict'>
# Key不可重复,重复会对原有数据覆盖
my_dict={"小明":90,"小明":79,"小美":95,"小空":89}
print(f"重复key的字典的内容为{my_dict},类型为{type(my_dict)}")
输出结果: 重复key的字典的内容为{'小明': 79, '小美': 95, '小空': 89},类型为<class 'dict'>
Python的字典是基于哈希表(hash table)实现的。字典中的每个键都通过一个哈希函数计算出一个哈希值,这个哈希值决定了键在内存中的存储位置。由于哈希值的计算和存储顺序不是固定的,因此字典的键是无序的。在Python 3.6及以后的版本中,插入字典的顺序会被保留,但无序的特性仍然是其基本性质,因此字典不支持下标索引,我们通常使用键访问字典中的值。
# 从字典中基于key取得value
my_dict={"小明":90,"小美":95,"小空":89,"小散":79}
score=my_dict["小明"]
print(f"小明的考试成绩为{score}")
输出结果: 小明的考试成绩为90
字典的嵌套:
# 字典的嵌套
stu_score_dict={
"小明":{
"语文":77,
"数学":89,
"英语":65
},"小美":{
"语文":89,
"数学":78,
"英语":98
},"小空":{
"语文":58,
"数学":97,
"英语":86
}
}
print(f"学生成绩信息为{stu_score_dict}")
# 从嵌套的字典中获取数据
score=stu_score_dict["小明"]["语文"]
print(f"小明的语文成绩为{score}")
输出结果: 学生成绩信息为{'小明': {'语文': 77, '数学': 89, '英语': 65}, '小美': {'语文': 89, '数学': 78, '英语': 98}, '小空': {'语文': 58, '数学': 97, '英语': 86}} 小明的语文成绩为77
字典的常用方法:
①添加元素:
语法:字典Key = Value
# 添加新元素
my_dict={"小明":90,"小美":95,"小空":89,"小散":79}
my_dict["小离"]=100
print(f"字典新增元素后,结果为{my_dict}")
输出结果: 字典新增元素后,结果为{'小明': 90, '小美': 95, '小空': 89, '小散': 79, '小离': 100}
②更新元素:
语法:字典Key = Value
# 更新元素
my_dict={"小明":90,"小美":95,"小空":89,"小散":79}
my_dict["小明"]=33
print(f"字典更新元素后,结果为{my_dict}")
输出结果: 字典更新元素后,结果为{'小明': 33, '小美': 95, '小空': 89, '小散': 79}
③删除元素:
语法:字典.pop(Key)
#删除元素
my_dict={"小明":90,"小美":95,"小空":89,"小散":79}
score=my_dict.pop("小明")
print(f"字典删除一个元素后,结果为{my_dict},小明的成绩为{score}")
输出结果: 字典删除一个元素后,结果为{'小美': 95, '小空': 89, '小散': 79},小明的成绩为90
使用 pop() 方法删除字典中的元素时,它会返回被删除的值。
④清空字典:
语法:字典.clear()
my_dict={"小明":90,"小美":95,"小空":89,"小散":79}
my_dict.clear()
print(f"字典被清空后,结果为{my_dict}")
输出结果: 字典被清空后,结果为{}
⑤获取字典中全部的key:
语法:字典.keys()
my_dict={"小明":90,"小美":95,"小空":89,"小散":79}
keys=my_dict.keys()
print(f"字典的全部key为{keys}")
输出结果: 字典的全部key为dict_keys('小明', '小美', '小空', '小散')
⑥统计字典内的全部元素(键值对)数量:
统计集合内有多少元素,得到一个整数结果。
语法:len(字典)
my_dict={"小明":90,"小美":95,"小空":89,"小散":79}
num=len(my_dict)
print(f"字典的元素数量:{num}")
输出结果: 字典的元素数量:4
字典不支持下标索引,所以不可使用while循环遍历,但是支持使用for循环遍历。
for循坏遍历:
方式一:
通过获取全部的key来完成遍历
语法:for key in 字典.keys()
# 方式一:通过获取全部的key来完成遍历
for key1 in my_dict.keys():
print(f"字典的key:{key1}")
print(f"字典的value:{my_dict[key1]}")
输出结果: 字典的key:小明 字典的value:90 字典的key:小美 字典的value:95 字典的key:小空 字典的value:89
方式二:
直接对字典进行for循坏,每一次循坏都是直接得到key
for key2 in my_dict:
print(f"字典的key:{key2}")
print(f"字典的value:{my_dict[key2]}")
输出结果:
字典的key:小明
字典的value:90
字典的key:小美
字典的value:95
字典的key:小空
字典的value:89
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。