散列类型
1.集合
特性无序(无序性)不重复(互异性)、集合的元素是不可变类型(确定性)
定义方法:
set() 类型转换
直接定义{'sfag','sahfg'}
lst = [1, 2, 3, 4, 5]
print(set(lst)) # {1, 2, 3, 4, 5} 类型转换
s1 = {1, 2, 3, 4, 5, 6} # 直接定义
集合的运算:
&交集 |并集 -差集
s1 = {1, 2, 3, 4, 5}
s2 = {3, 4, 5, 6, 7}
print(s1 & s2) # {3, 4, 5}
print(s1 | s2) # {1, 2, 3, 4, 5, 6, 7}
print(s1 - s2) # {1, 2}
增
add将元素添加到集合中
s1 = {1, 2, 3, 4, 5}
s1.add(6) # 没用返回值
print(s1) # {1, 2, 3, 4, 5, 6}
删
pop删除并返回任意set元素
s1 = {1, 2, 3, 4, 5}
print(s1.pop()) # 有返回值,返回被删除值
remove从集合中删除一个元素; 它必须是成员
s1 = {1, 2, 3, 4, 5}
s1.remove(2) # 没有返回值 指定元素删除
print(s1)
改
update用本身和其他元素的并集更新集合(也可做为增)
s1 = {1, 2, 3, 4, 5}
s1.update([1, 2, 5, 4, 7, 9]) # update(可迭代对象) 拆开
print(s1) # {1, 2, 3, 4, 5, 7, 9}
查
isdisjoint 没用交集返回True有交集返回False
s1 = {1, 2, 3, 4, 5}
s2 = {3, 4, 5, 6, 7}
print(s1.isdisjoint(s2)) # False
issubset 判断另一个集合是否包含该集合
s1 = {3, 4, 5}
s2 = {3, 4, 5, 6, 7}
print(s1.issubset(s2)) # True s2是否包含s1
issuperset 判断是否包含
s1 = {1, 2, 3, 4, 5}
s2 = {3, 4, 5}
print(s1.issuperset(s2)) # True s1是否包含s2
2.字典
特性:键(key)唯一性:s字典中的键(key)具有唯一性,不存在两个相同的键(key)
定义的方法:
di = {'key': 'value'}键值对的方式
di2 = dict(a=1, b=2) 使用dict函数
修改和添加:
di['a'] = 2 有这个键就修改,没有就添加
di['b'] = 3
di = {'name': '坦克', 'age': 20, 'weight': 150}
di2 = dict(hight=173, sex='男')
print(di, di2) # {'name': '坦克', 'age': 20, 'weight': 150} {'hight': 173, 'sex': '男'}
di2['a'] = 2
di2['b'] = 3
print(di2) # {'hight': 173, 'sex': '男', 'a': 2, 'b': 3}
增
setdefault 有则查,无则增
di = {'name': '坦克', 'age': 20, 'weight': 150}
print(di.setdefault('name')) # 坦克
di.setdefault('a')
di.setdefault('b', 12)
print(di) # {'name': '坦克', 'age': 20, 'weight': 150, 'a': None, 'b': 12}
删
clear 清空字典
di = {'name': '坦克', 'age': 20, 'weight': 150}
di.clear()
print(di) # {}
pop 弹出指定key的键值对
di = {'name': '坦克', 'age': 20, 'weight': 150}
print(di.pop('name')) # 坦克 有返回值
popitem 返回并删除字典中的最后一对键和值
di = {'name': '坦克', 'age': 20, 'weight': 150}
print(di.popitem()) # ('weight', 150) 有返回值
改
update 有则改,无则增 更新字典、将原字典和新字典整合,key重复新的覆盖老的
di = {'name': '坦克', 'age': 20, 'weight': 150}
di.update({'name': 'tanke'}) # {'name': 'tanke', 'age': 20, 'weight': 150} 没用返回值
di.update({'sex': '男'}) # {'name': 'tanke', 'age': 20, 'weight': 150, 'sex': '男'}
print(di)
查
`get 获取指定key 对应的value,如果key不存在放none
keys 取出所有的key
values 取出所有的值
items 取出所有的键值对`
di = {'name': '坦克', 'age': 20, 'weight': 150}
print(di.get('name')) # 坦克
print(di.keys()) # dict_keys(['name', 'age', 'weight'])
print(di.values()) # dict_values(['坦克', 20, 150])
print(di.items()) # dict_items([('name', '坦克'), ('age', 20), ('weight', 150)])
3.逻辑运算
| == | 等于 | != | 不等于 |
|---|---|---|---|
| > | 大于 | < | 小于 |
| >= | 大于等于 | <= | 小于等于 |
| and | 与 | not | 非 |
| or | 或 |
4.运算符优先级
| 运算符 | 描述 |
|---|---|
| ** | 幂运算 |
| +、- | 一元运算符(正负号) |
| %、/、* | 算术运算符 |
| +、- | 算术运算符 |
| <、>、<=、>=、==、!= | 比较运算符 |
| =、/=、-=、+=、=、%=、*=、//= | 赋值运算符 |
| is、is not | 身份运算符 |
| in、not in | 成员运算符 |
| not > and > or | 逻辑运算符 |