封装和解构
封装:将多个值进行分割,结合在一起,本质上返回元组,只是省掉了小括号
‘==‘意思为内容一致,‘=’意思为内存空间一致
解构:把线性结构的元素解开,并顺序的赋值给其他变量,左边接纳的变量数要和左边解开的元素数量一致
集合不是非线性
解构中使用*变量名接收,但不能单独使用,被*变量名收集后组成一个列表
第一个下划线为9,结果被第二个下划线重新赋值为8,7 所以最后的下划线结果为8,7
集set
可变的,无序的,不重复的元素集合
Collection翻译为集合,是一个大概念
S=set()定义集合,集合中元素不能用列表和bytearry, 集合中元素必须可hash,若不可hash则不能放入集合中作为元素,set也不可哈希;set元素不可索引,可以迭代
S={}定义字典
Add():增加一个元素,若元素存在什么都不做
Update(*other):合并其他元素到集合中,other为可迭代对象,可对多个可迭代对象进行添加,就地修改
S.discard():删除一个元素,若不存在,也不会报错
s.remove():删除一个元素,若不存在则报错
s.pop():随机弹出一个元素,里边不能有参数
s.clear():清空
in和not in判断元素是否在集合中
集合
并集:多个集合合并的结果,返回和多个集合合并后的新的集合运算符为|,等同union
交集:多个集合的公共部分,返回和多个集合的交集,运算符为&,等同intersection
差集:集合中除去和其他集合公共部分,返回和多个集合的差集,运算符为-,等同difference
对称差集:集合A和B,由所有不属于A和B的交集元素组成的集合,运算符为^,等同symmetric_difference
集合运算:
Issubset(other),<=:判断当前集合是不是另一个集合的子集
Issuperset(other),>=:判断当前集合是否是other的超集
Isdisjoint(other):当前集合和另一个集合没有交集,没有交集返回True
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/94153