散列类型
"""
集合 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}
# 打印
# 1
print(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}
# 打印判断结果
# True
print(s_1.isdisjoint(s_2))
# 赋值
s_3 = {1, 2, 3, 4, 5}
s_4 = {1, 2, 3}
# issubset 子类集合 判断另一个集合是否包含该集合
# 判断s_3是s_4的子集集合
# False
print(s_3.issubset(s_4))
# issuperset 父类集合 判断另一个集合是否包含该集合
# 判断s_3是s_4的父集集合
# True
print(s_3.issuperset(s_4))
字典
"""
字典key值有唯一性 key值不能为可变类型
字典也是无序性
"""
# 赋值
num = {"name": "qi", "age": "20", "sex": "man"}
# 取值
# qi
print(num["name"])
# 查看类型
#
print(type(num))
字典的方法
- 增
# 赋值 {"key": "value"}
num = {"name": "qi"}
# 打印原字典
# {'name': 'qi'}
print(num)
# setdefault 有则查key值所对应的value值,无则增
# 有则查
# 添加数据
num_1 = num.setdefault("name")
# 打印
# qi
print(num_1)
# 无则增
# 方法一
# 只添加key值 value值为None
# 添加数据
num_2 = num.setdefault("age")
# 打印
# None
print(num_2)
# 打印
# {'name': 'qi', 'age': None}
print(num)
# 方法二
# 添加字典 添加key值及key值所对应的value值
# 添加数据
num_3 = num.setdefault("sex", "man")
# 打印
# man
print(num_3)
# 打印
# {'name': 'qi', 'age': None, 'sex': 'man'}
print(num)
- 删
# 赋值
num = {'name': 'qi', 'age': 18, 'sex': 'man'}
# pop 查出指定key的键值对
# 删除key值及key值所对应的value值 用完再删
# 18
print(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
# 打印
# qi
print(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 (推荐使用)
# 打印
# qi
print(num.get("job"))
# 索引取值 key不存在则报错 (不推荐使用)
# 打印
# KeyError: 'job'
print(num["job"])
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: ECMAScript 6 之二路漫漫其修远兮,吾将上下而求索!
目录 2.6 Symbol 2.7 Map 和 Set 2.8 迭代器和生成器 2.9 Promise对象 2.10 Proxy对象 2.11 async的用法 2.22 类class 2.23 模块化实现 2.6 Symbol 原始数据类型,…