移动端网站建设,设计网站公司顶尖y湖南岚鸿牛x,网站建设的主流架构有哪些,中国商标交易网目录1.集合的基本概念2.集合的定义2.1 可变集合 set定义2.2 不可变集合 fronzenset 定义2.3 集合定义的注意事项3.单一集合的常用操作4. 集合之间操作4.1 交集4.2 并集4.3 差集4.4 判定1.集合的基本概念
无序的#xff0c;不可随机访问的#xff0c;不可重复的元素集合与数学…
目录1.集合的基本概念2.集合的定义2.1 可变集合 set定义2.2 不可变集合 fronzenset 定义2.3 集合定义的注意事项3.单一集合的常用操作4. 集合之间操作4.1 交集4.2 并集4.3 差集4.4 判定1.集合的基本概念
无序的不可随机访问的不可重复的元素集合与数学中集合的概念类似可对其进行交并差补等逻辑运算可分为可变集合和不可变集合 set 可变集合 增删改fronzenset 不可变集合 创建好之后无法增删改
2.集合的定义
2.1 可变集合 set定义
s {1,2,3,4}s set(iterable) 可以字符串列表元组字典集合变成一个集合
#可变集合的定义
s {1,2,3}
print(s,type(s))#输出 {1, 2, 3} class sets1 set(abchd)#字符串
s2 set([1,2,3,5])#列表
s3 set((1,2,3,4,))#元组
s4 set({1:2,as:3})
print(s1,type(s1))#输出{h, b, a, d, c} class set
print(s2,type(s2))#输出{1, 2, 3, 5} class set
print(s3,type(s3))#输出{1, 2, 3, 4} class set
print(s4,type(s4))#输出{1, as} class set2.2 不可变集合 fronzenset 定义
fs frozenset(iterable) 其中iterable可以是字符串列表元组字典等。但是为字典时只会提取key作为set的元素
2.3 集合定义的注意事项
创建一个空集合时需要使用set()或者frozenset()不能使用 s {} 因为这样会被识别成字典集合中的元素必须是可哈希的值。如果一个对象在自己的生命周期中有一哈希值hash value是不可改变的那么它就是可哈希的如果集合中的元素出现重复则会被合并为1个
3.单一集合的常用操作
3.1 可变集合
增加操作 add() s.add() 删除操作 s.remove(element) 指定删除set对象中的一个元素如果集合中没有这个元素则返回一个错误 s.discare(element) 指定删除set对象中的一个元素如果集合中没有这个元素则不做任何事情 s.pop() 随机删除并返回一个集合中的元素若集合为空则返回一个错误 s.clear() 清空一个集合中的所有元素 查询操作 通过for in进行遍历通过迭代器进行访问
#增加操作
s {1,2,3,4}
s.add(5)
print(s)#输出 {1, 2, 3, 4, 5}
s.add([1,2,3])#报错 因为[1,2,3]是可变哈希值#删除操作
s {1,2,3,4}
result s.remove(2)
print(result,s)#输出 None {1, 3, 4} 如果集合中没有这个元素则返回一个错误s {1,2,3,4}
result s.remove(2)
print(result,s)#输出 None {1, 3, 4} 如果集合中没有这个元素则不做任何操作s {1,2,3,4}
result s.pop()
print(result,s)#输出 1 {2, 3, 4}如果集合为空则返回一个错误s {1,2,3,4}
s.clear()
print(s)#{}#查询操作
#for in 遍历
s {1,2,3,4,5}
for x in s:print(x)#通过迭代器
#1.生成一个迭代器
s {1,2,3,4,5}
its iter(s)
#2.使用这个迭代器去访问
for x in its:print(x)3.2 不可变集合
不能增删改查询操作 通过for in进行遍历通过迭代器进行访问
#查询操作
#for in 遍历
s frozenset([1,2,3,4,5])
for x in s:print(x)#通过迭代器
#1.生成一个迭代器
s frozenset([1,2,3,4,5])
its iter(s)
#2.使用这个迭代器去访问
for x in its:print(x)4. 集合之间操作
4.1 交集
intersection(Iterable) 字符串 只判断字符串中的非数字列表元组字典 值判断key集合 intersection_update(…)
#intersection
s1 {1,2,3,4,5}
s2 {4,5,6}
result s1.intersection(s2)
print(result,type(result))#输出 {4, 5} class sets1 frozenset([1,2,3,4,5])
s2 {4,5,6}
result s1.intersection(s2)
print(result,type(result))#输出 {4, 5} class frozenset 输出结果为不可变集合
#当result s2.intersection(s1)时输出结果为输出 {4, 5} class set 集合为可变集合
#交集的输出时是以前面为基准的# 作用与上一个一样
s1 {1,2,3,4,5}
s2 {4,5,6}
result s1 s2#intersection_update()的作用和前两者一样但是会修改原集合。4.2 并集
union()|update()
#union
s1 {1,2,3,4,5}
s2 {4,5,6}
result s1.union(s2)
print(result,type(result))#输出 {1,2,3,4,5,6} class sets1 frozenset([1,2,3,4,5])
s2 {4,5,6}
result s1.union(s2)
print(result,type(result))#输出 {1,2,3,4,5,6} class frozenset 输出结果为不可变集合
#当result s2.intersection(s1)时输出结果为输出 {1,2,3,4,5,6} class set 集合为可变集合
#并集的输出时是以前面为基准的#| 作用与上一个一样
s1 {1,2,3,4,5}
s2 {4,5,6}
result s1 | s2#update()的作用和前两者一样但是会修改原集合。4.3 差集
defference()算术运算符 -defference_update()
4.4 判定
isdisjoint() 两个集合不相交issuperset() 一个集合包含另一个集合全部元素issubset() 一个集合包含于另一个集合部分元素
s1 {1,2,3,4,5}
s2 {4,5,6}
print(s1.isdisjoint(s2))#输出 Falses1 {1,2,3,4,5}
s2 {3,4,5}
print(s1.issuperset(s2))#输出 True s2是s1的完全子集合s1 {1,2,3,4,5}
s2 {4,5}
print(s1.issubset(s2))#输出 True s2是s1的子集合