一、什么是字典
1、字典是Python的一种常见数据结构,用于存储含有映射关系的数据。
2、字典通过key-value方式存储数据,key是字典中的关键词,可以根据字典中的关键词寻找value。
3、因为key是字典中的关键词,所以字典中key是唯一不可重复的。value可以存储任意的数据结构
二、字典的定义
# 1、python中可以试用{}定义字典
my_dict = {"name": "tim", "age": 18, "address": "广东省", "gender": "male"}# 2、空字典定义方式
my_empty_dict = dict()
# 空集合还可以使用{}方式定义
my_empty_dict = {}# 输出字典内容
print(f"my_dict的内容是:{my_dict},my_dict的数据类型是:{type(my_dict)}.")
print(f"my_empty_dict的内容是:{my_empty_dict},my_empty_dict的数据类型是:{type(my_empty_dict)}.")
输出内容:
my_dict的内容是:{‘name’: ‘tim’, ‘age’: 18, ‘address’: ‘广东省’, ‘gender’: ‘male’},my_dict的数据类型是:<class ‘dict’>.
my_empty_dict的内容是:{},my_empty_dict的数据类型是:<class ‘dict’>.
三、字典的基本操作
1、定义重复key的字典
# 定义两个重复的key (name)
my_dict = {"name": "tim", "age": 18, "address": "广东省", "gender": "male", "name": "jimmy"}print(f"字典my_dict的内容是:{my_dict},字典my_dict的数据类型是:{type(my_dict)}")
输出内容:
字典my_dict的内容是:{‘name’: ‘jimmy’, ‘age’: 18, ‘address’: ‘广东省’, ‘gender’: ‘male’},字典my_dict的数据类型是:<class ‘dict’>
重复的key,字典最终只会取最后一个key的值。
2、字典数据获取
# 获取字典value
my_dict = {"name": "tim", "age": 18, "address": "广东省", "gender": "male"}
# 获取字典中name的值
name=my_dict["name"]
print(f"name的值是:{name},name的类型是:{type(name)}")
输出内容:
name的值是:tim,name的类型是:<class ‘str’>
如果key在字典中不存在,则系统会提示异常。
3、定义嵌套字典
# 定义家庭成员字典
my_family = {"tim": {"name": "tim", "age": 18, "address": "广东省", "gender": "male"}, "jimmy": {"name": "jimmy", "age": 27, "address": "广东省", "gender": "male"}, "jenny": {"name": "jenny", "age": 27, "address": "广东省", "gender": "female"}
}
print(f"嵌套字典内容是:{my_family},嵌套字典类型是:{type(my_family)}")
输出内容:
嵌套字典内容是:{‘tim’: {‘name’: ‘tim’, ‘age’: 18, ‘address’: ‘广东省’, ‘gender’: ‘male’}, ‘jimmy’: {‘name’: ‘jimmy’, ‘age’: 27, ‘address’: ‘广东省’, ‘gender’: ‘male’}, ‘jenny’: {‘name’: ‘jenny’, ‘age’: 27, ‘address’: ‘广东省’, ‘gender’: ‘female’}},嵌套字典类型是:<class ‘dict’>
4、获取嵌套字典内容
# 定义家庭成员字典
my_family = {"tim": {"name": "tim", "age": 18, "address": "广东省", "gender": "male"}, "jimmy": {"name": "jimmy", "age": 27, "address": "广东省", "gender": "male"}, "jenny": {"name": "jenny", "age": 27, "address": "广东省", "gender": "female"}
}
tim_dict=my_family["tim"]
age=tim_dict["age"]
print(f"Tim的年龄是:{age}")
输出内容:
Tim的年龄是:18
5、新增字典元素
# 新增字典元素
my_dict = {"name": "tim", "age": 18, "address": "广东省", "gender": "male"}
my_dict["birth"] = "1994-03"
print(f"字典my_dict的内容是:{my_dict},字典my_dict的数据类型是:{type(my_dict)}")
输出内容:
print(f"字典my_dict的内容是:{my_dict},字典my_dict的数据类型是:{type(my_dict)}")
如果该key不存在于字典中,则新增新元素。
6、修改字典元素
# 修改字典元素
my_dict = {"name": "tim", "age": 18, "address": "广东省", "gender": "male"}
my_dict["address"] = "广东省中山市"
print(f"字典my_dict的内容是:{my_dict},字典my_dict的数据类型是:{type(my_dict)}")
输出内容:
字典my_dict的内容是:{‘name’: ‘tim’, ‘age’: 18, ‘address’: ‘广东省中山市’, ‘gender’: ‘male’},字典my_dict的数据类型是:<class ‘dict’>
如果该key存在于字典中,则会替换原字典中的值。
7、删除字典元素
# 修改字典元素
# 删除字典元素
my_dict = {"name": "tim", "age": 18, "address": "广东省", "gender": "male"}
my_dict.pop("address")
print(f"字典my_dict的内容是:{my_dict},字典my_dict的数据类型是:{type(my_dict)}")
输出内容:
print(f"字典my_dict的内容是:{my_dict},字典my_dict的数据类型是:{type(my_dict)}")
如果该key不存在于字典中,则移除元素时,程序会抛异常。
8、清除字典内容
my_dict = {"name": "tim", "age": 18, "address": "广东省", "gender": "male"}
my_dict.clear()
print(f"字典my_dict的内容是:{my_dict},字典my_dict的数据类型是:{type(my_dict)}")
输出内容:
字典my_dict的内容是:{},字典my_dict的数据类型是:<class ‘dict’>
9、获取字典的所有key
# 获取字典中的所有keys
my_dict = {"name": "tim", "age": 18, "address": "广东省", "gender": "male"}
keys=my_dict.keys()print(f"字典my_dict的所有keys是:{keys},数据类型是:{type(keys)}")
输出内容:
字典my_dict的所有keys是:dict_keys([‘name’, ‘age’, ‘address’, ‘gender’]),数据类型是:<class ‘dict_keys’>
10、字典遍历
# 字典遍历
my_dict = {"name": "tim", "age": 18, "address": "广东省", "gender": "male"}
keys=my_dict.keys()
# 方式一
for key in keys:print(f"key的值是:{key}")print(f"value的值是:{my_dict[key]}")# 方式二
for key in my_dict:print(f"key的值是:{key}")print(f"value的值是:{my_dict[key]}")
输出内容:
方式一:
key的值是:name
value的值是:tim
key的值是:age
value的值是:18
key的值是:address
value的值是:广东省
key的值是:gender
value的值是:male
方式二:
key的值是:name
value的值是:tim
key的值是:age
value的值是:18
key的值是:address
value的值是:广东省
key的值是:gender
value的值是:male
11、统计字典的元素数量
# 统计字典的元素数量
my_dict = {"name": "tim", "age": 18, "address": "广东省", "gender": "male"}
print(f"字典的元素数量是:{len(my_dict)}")
输出内容:
字典的元素数量是:4