标签:交集 union lin 转换 img 更新 sub copy linu
集合的特性:
1.不同元素组成
2.无序
3.集合元素必须是不可变类型 (可变:列表、字典)
4.能增加能删除,不能修改
集合的方法
1.set:定义可变集合 set后加可迭代类型
s=set(‘hello‘) print(s) #输出结果:{‘h‘, ‘o‘, ‘e‘, ‘l‘} --->自动去重
2.forzenset:创建不可变集合,不可变集合的一个主要应用是用来作为字典的键
s=frozenset(‘hello‘) print(s) #输出结果:frozenset({‘e‘, ‘h‘, ‘o‘, ‘l‘})
3.copy() 复制一个集合
s={‘h‘, ‘o‘, ‘e‘, ‘l‘} v=s.copy()
4.clear() 清空集合
s={‘h‘, ‘o‘, ‘e‘, ‘l‘} v=s.clear() print(v) #输出结果为:None
5.add() 添加集合元素,只能一个一个添加
s={‘h‘, ‘o‘, ‘e‘, ‘l‘} s.add(‘world‘) print(s) #输出结果为:{‘l‘, ‘e‘, ‘h‘, ‘world‘, ‘o‘}
6.update 更新 可更新多个值,传列表、元祖都可以(add只能更新一个值)
s1={‘ss‘, ‘didi‘, ‘lili‘} s2={333, 222,555,(‘www‘,‘eee‘)} s1.update(s2) print(s1) #输出结果为:{‘ss‘, (‘www‘, ‘eee‘), ‘lili‘, 555, ‘didi‘, 333, 222}
s1={‘ss‘, ‘didi‘, ‘lili‘} s2=[333, 222,555] #传列表 s1.update(s2) print(s1) #输出结果为:{‘didi‘, ‘ss‘, 555, 333, ‘lili‘, 222} s1={‘ss‘, ‘didi‘, ‘lili‘} s2=(333, 222,555) #传元祖 s1.update(s2) print(s1) #输出结果为:{‘didi‘, ‘ss‘, 555, 333, ‘lili‘, 222}
7.remove() 删除指定元素,不存在时报错
s={‘h‘, ‘o‘, ‘e‘, ‘l‘,‘world‘} s.remove(‘o‘) print(s) #输出结果为:{‘world‘, ‘l‘, ‘h‘, ‘e‘}
8.discard() 删除指定元素,不存在时不会报错
s={‘h‘, ‘o‘, ‘e‘, ‘l‘,‘world‘} s.discard(‘o2222‘) #删除不存在的元素 print(s) #输出结果为:{‘o‘, ‘e‘, ‘l‘, ‘world‘, ‘h‘} s={‘h‘, ‘o‘, ‘e‘, ‘l‘,‘world‘} s.discard(‘world‘) #删除存在的元素 print(s) #输出结果为:{‘l‘, ‘o‘, ‘e‘, ‘h‘}
9.列表与集合之间的转换
#列表转换成集合 s=[‘ss‘,‘lili‘,‘didi‘] new_s=set(s) print(new_s) #输出结果为:{‘ss‘, ‘didi‘, ‘lili‘}
#集合转换成列表 去重,不考虑顺序 s={‘ss‘, ‘didi‘, ‘lili‘} new_s=list(s) print(new_s) #输出结果为:[‘didi‘, ‘lili‘, ‘ss‘]
10.pop() 无序,随即删除一个
集合的运算
合集:| intersection
交集: & union
差集: - difference
交叉补集: ^ symmetric_difference
两个集合是否相等:== 相等返回True
两个集合是否无交集: isdisjoint 无交集返回True
判断是否为子集:issubset
判断是否为父集:issuperset
linux={‘lili‘,‘lulu‘,‘olay‘,‘alice‘,‘mike‘} python={‘mike‘,‘olay‘,‘selina‘,‘bonney‘,‘sherly‘} # | 合集 (两个集合合并) print(linux|python) print(linux.union(python)) #输出结果一样:{‘selina‘, ‘lulu‘, ‘alice‘, ‘lili‘, ‘mike‘, ‘bonney‘, ‘sherly‘, ‘olay‘} # & 交集 (两个集合相同的部分) print(linux&python) print(linux.intersection(python)) #输出结果一样:{‘olay‘, ‘mike‘} # - 差集 print(linux-python) print(linux.difference(python)) #输出结果一样:{‘alice‘, ‘lulu‘, ‘lili‘} # ^ 交叉补集 (先取合集,再去掉相同部分) print(linux^python) print(linux.symmetric_difference(python)) #输出结果一样:{‘sherly‘, ‘alice‘, ‘selina‘, ‘bonney‘, ‘lulu‘, ‘lili‘} # == 判断两个集合是否相同 print(linux==python) #输出结果:false #判断两个集合是否无交集 无交集:True,有交集:false print(linux.isdisjoint(python)) #输出结果:false
#父集 >,>= print(linux1>=python1) print(linux1.issuperset(python1)) #输出结果一样:True # 子集 <,<= print(python1<=linux1) print(python1.issubset(linux1)) #输出结果一样:True
标签:交集 union lin 转换 img 更新 sub copy linu
原文地址:https://www.cnblogs.com/lijinping716/p/11333205.html