Python基础(八)之数值类型字典
1、简介
字典(dict),Dictionary:是一种可变类型,可以存储任意类型的元素,如列表、字符串、元组等。
- 字典以键值对(key:value)方式存在,可以通过键来访问值。
- 字典的键key不可以重复,否则只会保留一个,键key可以是任意的数据类型,但不会出现可变的数据类型,保证key的唯一。值value可以重复。
2、创建
- dict = {key1: value1, key2: value2, key3: value3} 创建一个非空的字典
# 创建空字典s_dict_empty = {}# 区分与集合 空集合只能使用set()函数创建s_dict_empty1 = dict()# 创建非空字典s_dict = {1:'hello', 2:'Python'}
3、字典新增
- dict[key] = value 将key-value的键值对添加到字典中
# 创建字典s_dict = dict()# 给字典添加元素s_dict['one'] = 'Hello'print('打印字典s_dict=', s_dict)# 打印字典s_dict= {'one': 'Hello'}
4、删除字典del
s_dict = {1: 'hello', 2: 'Python', 3: 666}print('删除前的字典s_dict=', s_dict)del s_dict[3]# 删除字典中key=3的数据print('删除后的字典s_dict=', s_dict)'''删除前的字典s_dict= {1: 'hello', 2: 'Python', 3: 666}删除后的字典s_dict= {1: 'hello', 2: 'Python'}'''
5、查找字典元素
- dict[key] = value 通过key可以获取到对应的值
s_dict = {1: 'hello', 2: 'Python', 3: 666}print('查找key=2的数据:', s_dict[2])# 查找key=2的数据: Python
6、清空字典 clear
s_dict = {1: 'hello', 2: 'Python', 3: 666}print('清空前的字典s_dict=', s_dict)s_dict.clear()print('清空后的字典s_dict=', s_dict)'''清空前的字典s_dict= {1: 'hello', 2: 'Python', 3: 666}清空后的字典s_dict= {}'''
7、 获取字典长度len
s_dict = {1: 'hello', 2: 'Python', 3: 666}print('s_dict的长度为:', len(s_dict))# s_dict的长度为: 3
8、获取字典的所有键key
# s_dict.keys() 获取字典的所有keys_dict = {1: 'hello', 2: 'Python', 3: 666}print('s_dict的所有key为:', s_dict.keys())# s_dict的所有key为: dict_keys([1, 2, 3])s_dict_keys = s_dict.keys()print('获取字典所有key的s_dict_keys的类型为:', type(s_dict_keys))# 获取字典所有key的s_dict_keys的类型为: s_list = list(s_dict_keys)print('s_list= ', s_list)# s_list= [1, 2, 3]# 打印s_dict字典的所有键值对,并且将key=2的value修改为'修改一下Python'for el in s_list: print('key=', el, ',value=', s_dict[el]) if el == 2: s_dict[el] = '修改一下Python'print('修改字典后的字典为:')for el in s_list: print('key=', el, ',value=', s_dict[el])'''key= 1 ,value= hellokey= 2 ,value= Pythonkey= 3 ,value= 666修改字典后的字典为:key= 1 ,value= hellokey= 2 ,value= 修改一下Pythonkey= 3 ,value= 666'''
9、获取字典的所有值value
s_dict = {1: 'hello', 2: 'Python', 3: 666}s_dict_values = s_dict.values()print('s_dict字典中的所有值:', s_dict_values)# s_dict字典中的所有值: dict_values(['hello', 'Python', 666])print('s_dict_values的类型为:', type(s_dict_values))# s_dict_values的类型为:
10、获取字典中所有的键值对
s_dict = {1: 'hello', 2: 'Python', 3: 666}print('获取字典s_dict的所有键值对:', s_dict.items())# 获取字典s_dict的所有键值对: dict_items([(1, 'hello'), (2, 'Python'), (3, 666)])for el in s_dict.items(): print(type(el))# # 将每个键值对的元组取出来 for tupl in el: print(tupl)'''1hello2Python3666'''
11、判断字典中是否包含元素
- 使用in 或者 not in 判断元素是否在字典中, 但只能判断键key是否包含,不能判断值value是否在字典中存在
s_dict = {1: 'hello', 2: 'Python', 3: 666}print('判断s_dict中是否包含hello : ','hello' in s_dict)# Falseprint('判断s_dict中是否包含2 : ',2 in s_dict)# True
12、字典函数setdefault()
- 若key存在,则返回对应的value,不会将新设置的value返回
- 若key不存在,且字典中没有对应的value,则返回None,并且将新设置的value存到字典中key对应的value
- 若key不存在,但新设置了value,则会返回新设置的value,并且将key-value存到字典中
s_dict = {1: 'hello', 2: 'Python', 3: 666}print('存在key和value时:', s_dict.setdefault(2))print(s_dict)print('存在key和value,并且设置了新的value时:', s_dict.setdefault(2,'newValue'))print(s_dict)print('存在key,但不存在value时:', s_dict.setdefault(4))print(s_dict)print('存在key,但不存在value,且设置了新的value时:', s_dict.setdefault(4,'newValue4'))print(s_dict)s_dict_empty = {}print('不存在key,也不存在value时:', s_dict_empty.setdefault(5))print(s_dict_empty)print('不存在key,也不存在value,但设置了新的value时:', s_dict_empty.setdefault(5, 'newValue5'))print(s_dict_empty)
13、字典函数get()
- 若key存在,则返回对应的value,不会将新设置的value返回
- 若key不存在,且字典中没有对应的value,则返回None,并且新设置的value不存到字典中key对应的value
- 若key不存在,但新设置了value,则会返回新设置的value,并且key-value不会存到字典中
s_dict = {1: 'hello', 2: 'Python', 3: 666}print('存在key和value时:', s_dict.get(2))print(s_dict)print('存在key和value,并且设置了新的value时:', s_dict.get(2,'newValue'))print(s_dict)print('存在key,但不存在value时:', s_dict.get(4))print(s_dict)print('存在key,但不存在value,且设置了新的value时:', s_dict.get(4,'newValue4'))print(s_dict)s_dict_empty = {}print('不存在key,也不存在value时:', s_dict_empty.get(5))print(s_dict_empty)print('不存在key,也不存在value,但设置了新的value时:', s_dict_empty.get(5, 'newValue5'))print(s_dict_empty)