031 字典类型内置方法
一、字典类型内置方法(dict)
1. 用途:
存多个值,但每一个值都有一个key与之对应,key对值有描述功能。多用于存的值表示的是不同的状态时,例如存的值有姓名、年龄、身高、体重、爱好。
2. 定义方式:
{}内用逗号分隔开多个元素,每一个元素都是key:value的形式,value可以是任意数据类型,而key通常应该是字符串类型,但是key必须为不可变类型。
3.内置方法:
3.1 优先掌握
- 按key取值,即可取也可改变
- 长度len
- 成员运算in和not in
- 删除del
- 键keys()、值values()、键值对items()
- 循环
1.按key取值,即可取也可改变
print(f"{'按key取值,即可取也可改变':-^100}")
info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
print(info_dict['hobby_list'])
info_dict['age'] = 20
print(info_dict)
-------------------------------------------按key取值,即可取也可改变-------------------------------------------
['dapao', '666', '233']
2.长度len
print(f"{'长度len':-^100}")
info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
print(len(info_dict))
-----------------------------------------------长度len------------------------------------------------
5
3.成员运算in和not in
print(f"{'成员运算in和not in':-^100}")
info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
print('name' in info_dict)
-------------------------------------------成员运算in和not in--------------------------------------------
True
4.删除del
print(f"{'del删除':-^100}")
info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
del info_dict['name']
print(info_dict)
-----------------------------------------------del删除------------------------------------------------
5.键keys、值values、键值对items(items用的最多,一般和解压缩一起用)
print(f"{'键keys、值values、键值对items(items用的最多,一般和解压缩一起用)':-^100}")
info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
print(list(info_dict.keys())) # list
print(list(info_dict.values())) # list
print(list(info_dict.items())) # list
----------------------------键keys、值values、键值对items(items用的最多,一般和解压缩一起用)-----------------------------
['name', 'gender', 'hobby_list']
['wangdapao', 'female', ['dapao', '666', '233']]
[('name', 'wangdapao'), ('gender', 'female'), ('hobby_list', ['dapao', '666', '233'])]
6.for循环
print(f"{'for循环':-^100}")
info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
for k, v in info_dict.items(): # 解压缩方式
print(k, v)
name wangdapao
gender female
hobby_list ['dapao', '666', '233']
3.2 需要掌握
- copy拷贝
- pop删除
- popitem删除键值对
- clear清空字典
- get获取值
- update更新字典
- fromkeys由dict.出来,快速造一个字典
- setdefault(有则不变,无则往里面追加了值)
1.copy拷贝
info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
print(info_dict.copy())
-----------------------------------------------copy拷贝-----------------------------------------------
2.pop删除
print(f"{'pop删除':-^100}")
info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
info_dict.pop('name')
print(info_dict)
-----------------------------------------------pop删除------------------------------------------------
3.popitem删除键值对
print(f"{'popitem删除键值对':-^100}")
info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
info_dict.popitem() # 早期的时候字典是无序的,是随机删除的,但是由于python3底层优化了字典,让字典看的貌似有序了,所以默认删除最后一个
print(info_dict)
--------------------------------------------popitem删除键值对--------------------------------------------
4.clear清空字典
print(f"{'clear清空字典':-^100}")
info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
info_dict.clear()
print(info_dict)
--------------------------------------------popitem删除键值对--------------------------------------------
{}
5.get获取值
print(f"{'get获取值':-^100}")
info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
print(info_dict.get('age')) # 使用get函数的好处是没有该键值对,则返回None
print(info_dict.get('name1', 'cyx')) # 如果有,就返回真正的值;如果没有,默认返回None,也可以指定返回
-----------------------------------------------get获取值-----------------------------------------------
None
cyx
6.update更新字典
print(f"{'update更新字典':-^100}")
info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
info_dict.update({'a':1})
print(info_dict)
---------------------------------------------update更新字典---------------------------------------------
7.fromkeys由dict.出来,快速造一个字典
# fromkeys由dict.出来,快速造一个字典
print(f"{'fromkeys由dict.出来,快速造一个字典':-^100}")
print(dict.fromkeys(['a',2,3,4,5],'baba'))
--------------------------------------fromkeys由dict.出来,快速造一个字典--------------------------------------
8.setdefault(有则不变,无则往里面追加了值)
info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
info_dict.setdefault('gender', 123123) # 有则不变,无则往里面追加了值
print(info_dict)
-------------------------------------setdefault(有则不变,无则往里面追加了值)-------------------------------------
4. 存一个值还是多个值:
多个值
5. 有序or无序:
无序
6. 可变 or 不可变(重点 可变:值变id不变,不可哈希| 不可变:值变id也变,可哈希):
可变