散列类型
"""汇合 set 符号: {} (为空则是字典) 转换形式: set() 可变类型字典 dict 符号: {} (键值对) 表现形式: {"key": "value"} 转换形式: set() 可变类型"""
汇合
1. 汇合的定义
"""汇合的三大个性无序性 汇合里的各个元素是不须要辨别程序的,不能以索引取值互同性 一个给定的汇合里的元素是互不雷同的,汇合中不会有反复的元素,可用于去重确定性 给定的汇合,它的元素必须是确定的,元素不能是可变类型"""# 赋值num = [1, 1, 2, 3, 3, 9, 4, 5, 66, 7, 7, 9]# 去重 先转换为汇合,利用汇合个性去重,再转换为列表num_1 = list(set(num))# 打印# {1, 2, 3, 4, 5, 66, 7, 9}print(num_1)
2. 汇合的三种运算
"""交加 s1 & s2并集 s1 | s2差集 s1 - s2"""# 赋值s_1 = {1, 2, 3, 4, 5, 6}s_2 = {4, 5, 6, 7, 8, 9}# 交加# 打印相交的局部# {4, 5, 6}print(s_1 & s_2)# 并集# 打印相交的局部# {1, 2, 3, 4, 5, 6, 7, 8, 9}print(s_1 | s_2)# 赋值s_3 = {1, 2, 3, 4, 5, 6}s_4 = {4, 5, 6}# 差集# 打印相交的局部# {1, 2, 3}print(s_1 - s_2)
汇合的办法
- 增
# add 将元素增加到汇合中# 汇合内只能增加不可变类型# 赋值s_1 = {1, 2, 3, 4, 5}# 增加数据s_1.add("hello")# 打印# {1, 2, 3, 4, 5, 'hello'}print(s_1)
- 删
# pop 删除并返回任意set元素# 赋值s_1 = {1, 2, 3, 4, 5}# 打印# 1print(s_1.pop())# {2, 3, 4, 5}print(s_1)# 赋值s_2 = {1, 2, 3, "hello", 4, 5, 6}# remove 删除指定的元素s_2.remove("hello")# 打印# {1, 2, 3, 4, 5, 6}print(s_2)
- 改
# update 用自身和其它元素的并集更新汇合# 相当于是增加,只能增加可迭代对象# 赋值s_1 = {1, 2, 3, 4, 5}# 更新汇合s_1.update({7, 8, 9, 0})# 打印# {0, 1, 2, 3, 4, 5, 7, 8, 9}print(s_1)
- 查
# isdisjoint 判断两个汇合的交点是否为空# 赋值s_1 = {1, 2, 3, 4, 5}s_2 = {7, 8, 9, 0}# 打印判断后果# Trueprint(s_1.isdisjoint(s_2))# 赋值s_3 = {1, 2, 3, 4, 5}s_4 = {1, 2, 3}# issubset 子类汇合 判断另一个汇合是否蕴含该汇合# 判断s_3是s_4的子集汇合# Falseprint(s_3.issubset(s_4))# issuperset 父类汇合 判断另一个汇合是否蕴含该汇合# 判断s_3是s_4的父集汇合# Trueprint(s_3.issuperset(s_4))
字典
"""字典key值有唯一性 key值不能为可变类型字典也是无序性"""# 赋值num = {"name": "qi", "age": "20", "sex": "man"}# 取值# qiprint(num["name"])# 查看类型# <class 'dict'>print(type(num))
字典的办法
- 增
# 赋值 {"key": "value"}num = {"name": "qi"}# 打印原字典# {'name': 'qi'}print(num)# setdefault 有则查key值所对应的value值,无则增# 有则查# 增加数据num_1 = num.setdefault("name")# 打印# qiprint(num_1)# 无则增# 办法一# 只增加key值 value值为None# 增加数据num_2 = num.setdefault("age")# 打印# Noneprint(num_2)# 打印# {'name': 'qi', 'age': None}print(num)# 办法二# 增加字典 增加key值及key值所对应的value值# 增加数据num_3 = num.setdefault("sex", "man")# 打印# manprint(num_3)# 打印# {'name': 'qi', 'age': None, 'sex': 'man'}print(num)
- 删
# 赋值num = {'name': 'qi', 'age': 18, 'sex': 'man'}# pop 查出指定key的键值对# 删除key值及key值所对应的value值 用完再删# 18print(num.pop("age"))# 打印# {'name': 'qi', 'sex': 'man'}print(num)# 赋值num_2 = {'name': 'qi', 'age': 18, 'sex': 'man', "job": "python工程师"}# popitem 返回并删除字典中的最初一对键值对# 删除key值及key值所对应的value值 用完再删# ('job', 'python工程师')print(num_2.popitem())# 打印# {'name': 'qi', 'age': 18, 'sex': 'man'}print(num_2)# clear 清空# 赋值num_3 = {'name': 'qi', 'age': 18, 'sex': 'man'}# 清空数据num_3.clear()# 打印# {}print(num_3)
- 改
# 赋值num = {'name': 'qi', 'age': None}# update 有则改,无则增# 有则改# 改变数据num.update({"age": 18})# 打印# {'name': 'qi', 'age': 18}print(num)# 无则增# 减少数据num.update({"sex": "man"})# 打印# {'name': 'qi', 'age': 18, 'sex': 'man'}print(num)
- 查
# 赋值num = {"name": "qi", "age": "20", "sex": "man"}# get 获取指定key对应的value值,key不存在则返回None# 打印# qiprint(num.get("name"))# keys 取出所有的key# 打印# dict_keys(['name', 'age', 'sex'])print(num.keys())# 转换为列表# ['name', 'age', 'sex']print(list(num.keys()))# values 取出所有的value# 打印# dict_values(['qi', '20', 'man'])print(num.values())# 转换为列表# ['name', 'age', 'sex']print(list(num.keys()))# items 取出所有的键对值# 打印# dict_items([('name', 'qi'), ('age', '20'), ('sex', 'man')])print(num.items())# 转换为列表# [('name', 'qi'), ('age', '20'), ('sex', 'man')]print(list(num.items()))
字典索引key与字典get办法的区别
# 赋值num = {"name": "qi", "age": "20", "sex": "man"}# get取值 key不存在则返回None (举荐应用)# 打印# qiprint(num.get("job"))# 索引取值 key不存在则报错 (不举荐应用)# 打印# KeyError: 'job'print(num["job"])