您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python 第二章 集合

5b51 2022/1/14 8:23:01 python 字数 13040 阅读 576 来源 www.jb51.cc/python

2.4集合1.基本概念集合:集合与字典类似,都是用‘{}’括起来,但字典中的元素是键值对(key-value),而集合中的元素则是和列表(list)、元组(tuple)一样的单个值。集合中的元素都是不可变数据类型,如整数,浮点数,字符串,元组等。集合中的元素是不重复的唯一值。集合中的元素是无序的,添

概述

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

总结

以上是编程之家为你收集整理的Python 第二章 集合全部内容,希望文章能够帮你解决Python 第二章 集合所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶