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

python-集合

时间:2019-08-31 13:13:59      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:交集   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

技术图片

 

python-集合

标签:交集   union   lin   转换   img   更新   sub   copy   linu   

原文地址:https://www.cnblogs.com/lijinping716/p/11333205.html

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