首页 > 其他 > 详细

集合与不可变集合

时间:2019-06-20 11:48:51      阅读:100      评论:0      收藏:0      [点我收藏+]

一、集合

集合是一种无序的序列。集合中的元素具有唯一性,即集合中不存在两个同样的元素。

1.集合的格式

通常用一对大括号“{}”来创建集合:

s = {1,2,5}

也可以使用set()函数来生成:

s = set([1,3,2,1])
print(s)     #结果为:{1,3,2}

2.集合的运算

(1)交集

两个集合的交集可以用操作符" & "实现,也可以用.intersection()方法得到两个集合的交集,返回两个集合共有元素的集合。

a = {1,5,6,9}
b = {1,4,6,8}
s = a.intersection(b)
v = a & b
print(s)     #结果为:{1, 6}
print(v)     #结果为:{1, 6}

(2)并集

两个集合的并集可以用操作符" | "实现,也可以用.union()方法得到两个集合的并集,返回两个集合所有元素的集合

a = {1,5,6,9}
b = {1,4,6,8}
s = a.union(b)
v = a | b
print(s)      #结果为:{1, 4, 5, 6, 8, 9}
print(v)      #结果为:{1, 4, 5, 6, 8, 9}

(3)差集

两个集合的差集可以用操作符" - "实现,也可以用.difference()方法得到两个集合的差集,返回在第一个集合而不在第二个集合的元素组成的集合。

a = {1,5,6,9}
b = {1,4,6,8}
s = a.difference(b)
v = b - a
print(s)    #结果为:{5,9}
print(v)    #结果为:{4,8}

(4)交叉补集

两个集合的差集可以用操作符" ^ "实现,也可以用.symmetric_difference()方法得到两个集合的交叉补集,返回两个集合并集与交集的差。

a = {1,5,6,9}
b = {1,4,6,8}
s = a.symmetric_difference(b)
v = b ^ a
print(s)      #结果为:{4, 5, 8, 9}
print(v)      #结果为:{4, 5, 8, 9}

3.集合的包含关系

(1)子集

判断子集关系可以用运算符" <= "实现,也可以用.issubset()方法来判断是不是某个集合的子集。

a = {1,5,6,9}
b = {1,6}
print(b<=a)      #结果为:True
print(b.issubset(a))     #结果为:True

(2)父集

判断父集关系可以用运算符" >= "实现,也可以用.issuperset()方法来判断是不是某个集合的父集。

a = {1,5,6,9}
b = {1,6}
print(a>=b)       #结果为:True
print(a.issuperset(b))      #结果为:True

4.集合的方法

(1).add()方法

.add()方法就是添加单个元素。

b = {1,6}
b.add(5)
print(b)      #结果为:{1,5,6}

(2).update()方法

.update()方法用来向集合添加多个元素,接受一个序列作为参数。

b = {1,6}
b.update([1,5,7])
print(b)     #结果为:{1, 5, 6, 7}

(3).remove()方法

.remove()方法可以从集合中移除单个指定元素,元素不存在会报错。

b = {1,6,5}
b.remove(5)
print(b)     #结果为:{1,6}

(4).pop方法

.pop方法随机地从集合中删除并返回一个元素。

b = {1,6,5,alex}
v = b.pop()
print(b)     #返回删除元素的集合
print(v)     #随机被删除的元素

(5).discard()方法

.discard()方法作用跟.remove()方法一样,区别在于删除不存在元素不会报错。

b = {1,6,5,alex}
b.discard(3)
print(b)           #结果为:{1, ‘alex‘, 5, 6}

5.判断从属关系

b = {1,6,5,alex}
s = 5 in b
print(s)     #结果为:True

二、不可变集合

不可变集合是一种不可变类型,一旦创建就不能改变,其构建方法如下:

s = frozenset([1,6,alex,1])
print(s)    #结果为:frozenset({1, ‘alex‘, 6})

PS:以上代码得到的结果集合是可变的,不是唯一值。

集合与不可变集合

原文:https://www.cnblogs.com/lzc69/p/11057766.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!