散列类型

散列类型

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 逻辑运算符
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容