编程语言
首页 > 编程语言> > Python 第二章 集合

Python 第二章 集合

作者:互联网

2.4 集合

1. 基本概念

集合:

2. 集合的创建、添加、删除、交集、并集、差集、超集、子集、判断是否相交

2.1 创建集合
     创建集合时我们可以先创建一个空字典,会用到 set() 函数,然后再添加元素。
例:

s1 = {1, 2, 3, 4, 5, 6, 6, 7}  # 集合中的元素不重复,会自动去重
print(s1, type(s1))

s2 = {}                # 定义空字典
print(s2, type(s2))

s3 = set([])
print(s3, type(s3))    # 定义空集合

输出:

{1, 2, 3, 4, 5, 6, 7} <class 'set'>
{} <class 'dict'>
set() <class 'set'>

进程已结束,退出代码 0

2.2 集合中添加元素

例1:s.add(b) 向集合 s 中添加一个元素 b

s = {'beijing', 'shanghai', 'guangzhou'}
s.add('shenzhen')
print(s, type(s))

输出:

{'shenzhen', 'shanghai', 'beijing', 'guangzhou'} <class 'set'>

进程已结束,退出代码 0

例2:s.update([a、b、c]) 向集合 s 中添加多个元素 a、b、c

s = {'beijing', 'shanghai', 'guangzhou'}
s.update(['shenzhen', 'hangzhou'])
print(s, type(s))

输出:

{'shanghai', 'beijing', 'shenzhen', 'hangzhou', 'guangzhou'} <class 'set'>

进程已结束,退出代码 0

2.3 集合中删除元素

例1:s.pop() 随机删除集合中的某个元素

s = {'beijing', 'shanghai', 'guangzhou', 'shenzhen', 'hangzhou'}
s.pop()
print(s, type(s))

输出:

{'shanghai', 'shenzhen', 'beijing', 'hangzhou'} <class 'set'>

进程已结束,退出代码 0

例2:s.remove(a) 删除集合 s 中指定元素 a

s = {'beijing', 'shanghai', 'guangzhou', 'shenzhen', 'hangzhou'}
s.remove('guangzhou')
print(s, type(s))

输出:

{'hangzhou', 'shanghai', 'shenzhen', 'beijing'} <class 'set'>

进程已结束,退出代码 0

2.4 集合的交集
     s.intersection(b) 或 s & b 都可以计算出集合 s 和 集合 b 的交集。
例:

s1 = {'beijing', 'shanghai', 'guangzhou', 'shenzhen', 'hangzhou'}
s2 = {'beijing', 'shanghai', 'hangzhou', 'wuhan', 'nanjing'}
print('交集:', s1.intersection(s2))
print('交集:', s1 & s2)

输出:

交集: {'hangzhou', 'shanghai', 'beijing'}
交集: {'hangzhou', 'shanghai', 'beijing'}

进程已结束,退出代码 0

2.5 集合的并集
     s.union(b) 或 s | b 都可以计算出集合 s 和 集合 b 的交集。
例:

s1 = {'beijing', 'shanghai', 'guangzhou', 'shenzhen', 'hangzhou'}
s2 = {'beijing', 'shanghai', 'hangzhou', 'wuhan', 'nanjing'}
print('交集:', s1.union(s2))
print('交集:', s1 | s2)

输出:

并集: {'wuhan', 'beijing', 'nanjing', 'hangzhou', 'shenzhen', 'shanghai', 'guangzhou'}
并集: {'wuhan', 'beijing', 'nanjing', 'hangzhou', 'shenzhen', 'shanghai', 'guangzhou'}

进程已结束,退出代码 0

2.6 集合的差集
     s.difference(b) 或 s - (s&b)都可以计算出集合 s 和 集合 b 的差集。
例:

s1 = {'beijing', 'shanghai', 'guangzhou', 'shenzhen', 'hangzhou'}
s2 = {'beijing', 'shanghai', 'hangzhou', 'wuhan', 'nanjing'}
print('差集:', s1.difference(s2))
print('差集:', s1 - (s1 & s2))

输出:

差集: {'shenzhen', 'guangzhou'}
差集: {'shenzhen', 'guangzhou'}

进程已结束,退出代码 0

2.7 集合的超集
     s.issuperset(b) 可以计算出集合 s 是否是集合 b 的超集,即集合 b 包含于集合 a,如果集合 a 和 b 相等则互为超集。
例:

s1 = {'beijing', 'shanghai', 'guangzhou', 'shenzhen', 'hangzhou'}
s2 = {'beijing', 'shanghai', 'hangzhou'}
print('超集:', s1.issuperset(s2))

输出:

超集: True

进程已结束,退出代码 0

2.8 集合的子集
     s.issubset(b) 可以计算出集合 s 是否是集合 b 的子集。
例:

s1 = {'beijing', 'shanghai', 'guangzhou', 'shenzhen', 'hangzhou'}
s2 = {'beijing', 'shanghai', 'hangzhou'}
print('子集:', s1.issubset(s2))
print('子集:', s2.issubset(s1))

输出:

子集: False
子集: True

进程已结束,退出代码 0

2.9 判断两集合是否相交
     s.isdisjoint(b) 可以判断集合 s 是否是集合 b 的是否不相交,不相交返回 False,相交返回 True。
例:

s1 = {'beijing', 'shanghai', 'guangzhou', 'shenzhen', 'hangzhou'}
s2 = {'beijing', 'shanghai', 'hangzhou'}
print('是否不相交:', s1.isdisjoint(s2))

输出:

是否不相交: False

进程已结束,退出代码 0

3. 集合特性

3.1 去重
     集合中的元素都是唯一的,因此可用来去掉重复值。
例:

s1 = [1, 2, 3, 3, 4, 5, 6, 6]
s2 = set(s1)
print(s2, type(s2))
print(list(s2), type(list(s2)))

输出:

{1, 2, 3, 4, 5, 6} <class 'set'>
[1, 2, 3, 4, 5, 6] <class 'list'>

进程已结束,退出代码 0

3.2 成员操作符
     a in b 判断元素 a 是否在集合 b 中。
例:

s1 = [1, 2, 3, 3, 4, 5, 6, 6]
print(1 in s1)

输出:

True

进程已结束,退出代码 0

3.3 迭代:for 循环
例:

s1 = [1, 2, 3, 3, 4, 5, 6, 6]
for i in s1:
    print(i)

输出:

1
2
3
3
4
5
6
6

进程已结束,退出代码 0

3.4 枚举:返回对应元素及其索引值
     enumerate()函数能返回集合中每个元素的下标和值,从而实现索引。
例:

s1 = [1, 2, 3, 3, 4, 5, 6, 6]
for index, value in enumerate(s1):
    print('索引:%s,值:%s' % (index, value))

输出:

索引:0,值:1
索引:1,值:2
索引:2,值:3
索引:3,值:3
索引:4,值:4
索引:5,值:5
索引:6,值:6
索引:7,值:6

进程已结束,退出代码 0

标签:beijing,Python,s2,s1,shanghai,hangzhou,集合,第二章
来源: https://blog.csdn.net/qq_43468807/article/details/115261421