# ========================字典(dict)基本方法=========================== # 用途: # 定义方式:通过大括号来存储数据,通过key:value来定义键值对数据,每个键值对中间通过逗号分隔 # key:一定是一个不可变类型 # value:可以是任意类型
定义方式
定义:在{}内用各元素用逗号隔开,每个元素都是 key:value的形式,其中value可以是任意类型, 而key必须是不可变类型。一般而言,key是str类型,因为字符串类型可以对value有描述性功能
my_dict = {'name': 'yyh', 'age': 18, 'sex': 'male'} # 等价于 my_dict = dict({'name': 'yyh', 'age': 18, 'sex': 'male'})
类型转换
# 转换1:
my_dict = dict([['name', 'yyh'], ('age', 18)]) print(my_dict) >>>{'name': 'yyh', 'age': 18}
# 转换2:
my_dict = {}.fromkeys(('name','age','sex'),None) print(my_dict)
>>>{'name': None, 'age': None, 'sex': None}
# fromkeys()将元组内的值分别取出作为Key与None(第二个参数)形成配对
# dict + zip生成字典 my_dict = dict(zip(['k1', 'k2', 'k3'], [1, 2, 3])) print(my_dict)
操作
# 1.取值 print(my_dict['name']) print(my_dict['hobbies'][0]) # 赋值 ps:如果键已存在,则会改变对应的值 my_dict['sex'] = 'male' my_dict['age'] = 20 print(my_dict)
# 2.长度 print(len(my_dict)) # 3.in 和 not in 判断某个值是否为dict的key print('name' in my_dict) # 4.删除 pop()删除指定的key及对应的value,并返回value的值 print(my_dict.pop('name'))
# 5.keys(),values()和items() print(my_dict.keys()) # 返回所有的key print(my_dict.values()) # 返回所有的value print(my_dict.items()) # 返回所有的键值对
# 6.for循环遍历 for key in my_dict: # 默认遍历为key print(key) for key in my_dict.keys(): print(key) for value in my_dict.values(): # 遍历value print(value) for key,value in my_dict.items(): # 遍历键值对 print(key,':',value,sep='')
# 7.get() print(my_dict.get('name')) # 返回对应的value print(my_dict.get('aaa',200)) # 如果不存在指定的key,默认返回None,第二个参数可设置返回值(200) # 8.pop() print(my_dict.pop('name')) # 删除指定的key和value,并返回value # 9.popitem() print(my_dict.popitem()) # 随机删除一对键值,将被删除的key和value在元组内返回
# 10.update() # 用新字典更新旧字典,有则更改,无则添加(只增不减) my_dict = { 'name': 'yyh', 'age': 19, 'hobbies': ['basketball', 'running'] } my_dict.update({'sex': 'male'}) print(my_dict)
>>>{'name': 'yyh', 'age': 19, 'hobbies': ['basketball', 'running'], 'sex': 'male'}
# 11.fromkeys() print(my_dict) my_dict = {}.fromkeys(['k1','k2','k3'],[]) print(my_dict)
>>>
{'name': 'yyh', 'age': 19, 'hobbies': ['basketball', 'running']}
{'k1': [], 'k2': [], 'k3': []}
# 12.setdefault() my_dict = { 'name': 'yyh', 'age': 19, 'hobbies': ['basketball', 'running'] } res = my_dict.setdefault('name','jxx') # 如果键已存在,值不会发生改变 print(res) # 输出为 yyh res = my_dict.setdefault('sex','male') # 如果键不存在,会新增 print(res) print(my_dict)
# =========================类型总结========================== # 有序or无序 : 无序 # 可变or不可变 :可变类型 # 存一个值or存多个值 : 存多个值