关于Python集合(set)的整理

Posted msj513

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Python集合(set)的整理相关的知识,希望对你有一定的参考价值。

集合

  1. 不同元素组成
  2. 无序
  3. 集合当中元素必须是不可变类型(数字,字符串,元组)

 

集合的定义:

s = {1,2,3,3,4}

s = {‘hello’}

转换只有可迭代对象才可以转换

 

set 方法

-add #将对象添加到集合中

s ={1,2,3,4,5,6}
s.add("s")
s.add(3)
s.add(3)
print(s)
#结果:{1, 2, 3, 4, 5, 6, s, 3}

-clear

s ={1,2,3,4,5,6}
s.clear()
print(s)
#结果:set()

-copy

s = {1,2,3,4,5,6}
s1 = s.copy()
print(s1)
#结果:{1, 2, 3, 4, 5, 6}

-pop #随机删除

-remove #指定删除

s = {sb,1,2,3,4,5,6}
s.pop()
print(s)#随机删除
s.remove(sb)
print(s)#指定删除
#s.remove(‘helo‘)#删除元素不存在,会报错
s.discard(ssbb)#删除元素,不存在也不会保错
#结果:{2, 3, 4, 5, 6, ‘sb‘}
#{2, 3, 4, 5, 6}

一般方法求共同项

python_1 =[lcg,szw,zjw]
linux_1 = [lcg,szw]
python_and_linux = []
for p_name in python_1:
    if p_name in linux_1:
        python_and_linux.append(p_name)
print(python_and_linux)
#结果:[‘lcg‘, ‘szw‘]
#用集合的方式 
python_1 =[lcg,szw,zjw]
linux_1 = [lcg,szw,sb]
p_s = set(python_1)#转换为集合
l_s =set(linux_1)
print(p_s)
技术分享图片
 1 print(l_s)
 2 print(p_s.intersection(l_s))#求交集
 3 print(p_s&l_s)
 4 
 5 #求并集
 6 print(p_s.union(l_s))
 7 print(p_s|l_s)
 8 
 9 #求差集
10 print("差集",p_s - l_s)
11 print("差集",l_s - p_s)
12 print(p_s.difference(l_s))
13 
14 
15 ‘‘‘结果:
16 {‘lcg‘, ‘zjw‘, ‘szw‘}
17 {‘lcg‘, ‘sb‘, ‘szw‘}
18 {‘lcg‘, ‘szw‘}
19 {‘lcg‘, ‘szw‘}
20 {‘lcg‘, ‘zjw‘, ‘sb‘, ‘szw‘}
21 {‘lcg‘, ‘zjw‘, ‘sb‘, ‘szw‘}
22 差集 {‘zjw‘}
23 差集 {‘sb‘}
24 {‘zjw‘}‘‘‘
View Code
技术分享图片
 1 python_1 =[lcg,szw,zjw]
 2 linux_1 = [lcg,szw,sb]
 3 p_s = set(python_1)#转换为集合
 4 l_s =set(linux_1)
 5 #交叉补集
 6 #交叉补集
 7 print(p_s.symmetric_difference(l_s))
 8 print(p_s^l_s)
 9 结果:
10 {sb, zjw}
11 {sb, zjw}
交叉补集
技术分享图片
 1 -differnece_update
 2 python_1 =[lcg,szw,zjw]
 3 linux_1 = [lcg,szw,sb]
 4 p_s = set(python_1)
 5 l_s = set(linux_1)
 6 print(p_s - l_s)
 7 print(p_s)
 8 p_s.difference_update(l_s)#更新求差集,更新的数据在
 9 print(p_s)
10 结果:
11 {zjw}
12 {lcg, zjw, szw}
13 {zjw}
更新求差集
s1 = {1,2,3,4}
s2 = {5,6,7}
print(s1.isdisjoint(s2))#判断是否没有交集,如果没有交集则返回True
#结果:True
技术分享图片
1 s1 = {1,2}
2 s2 = {1,2,3}
3 print(s1.issubset(s2))#是否子集的情况
4 #结果:True
-判断s1是s2 的子集
1 print(s2.issuperset(s1))#是否是父集
2 #结果:True
s1 = {1,2}
技术分享图片
1 #去重,在不考虑顺序的情况下
2 names = ["alex","alex",wupeiqi]
3 names = list(set(names))
4 print(names)
5 #结果:[‘alex‘, ‘wupeiqi‘]
Frozenset() 冰冻集合,即不可变集合

 


s2 = {1,2,3}
s1.update(s2)#更新集合中的数据,可以传入可迭代对象     
print(s1)
#结果:{1, 2, 3}

 

以上是关于关于Python集合(set)的整理的主要内容,如果未能解决你的问题,请参考以下文章

代码片段 - Golang 实现集合操作

关于Python的集合set

关于set

Python面试整理

常用python日期日志获取内容循环的代码片段

关于python里面的set,set之后的集合元素是如何让排列的