码迷,mamicode.com
首页 > 编程语言 > 详细

关于Python集合(set)的整理

时间:2018-06-18 12:40:14      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:bsp   upd   字符   alt   转换   opened   lex   isp   python集合   

集合

  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)的整理

标签:bsp   upd   字符   alt   转换   opened   lex   isp   python集合   

原文地址:https://www.cnblogs.com/msj513/p/9194836.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!