Python 基础备忘之 Set 篇

《Python 基础备忘之 List 篇》 之后,今天继续整理 Python Set 相关知识。灵感来源于 Cheat sheets,Cheat sheets 类似于考试时的小抄,将某个需要学习的东西精华整理在一页或几页纸上。编程初学者,找一个最适合自己的版本 ,然后下载并打印出来。一张纸囊括核心内容。进阶或高手,鼓励创作并共享 Cheat sheets,或梳理知识,或为社区作贡献。

什么是 Set

set 对象是由具有唯一性的 hashable 对象所组成的无序多项集。 常见的用途包括成员检测、从序列中去除重复项以及数学中的集合类计算,例如交集、并集、差集与对称差集等等。

与其他多项集一样,集合也支持 x in set, len(set)for x in set作为一种无序的多项集,集合并不记录元素位置或插入顺序。 相应地,集合不支持索引、切片或其他序列类的操作

除了可以使用 set 构造器,非空的 set (不是 frozenset) 还可以通过将以逗号分隔的元素列表包含于花括号之内来创建,例如:{'jack', 'sjoerd'}

创建 Set

使用花括号内以逗号分隔元素的方式: {'jack', 'sjoerd'}

s = {'jack', 'sjoerd'}

# 不能这样创建一个空集合,这是一个字典
s = {}

# 应该使用其类型构造器来创建一个空集合
s = set()
s.add('cat')

使用集合推导式: {c for c in 'abracadabra' if c not in 'abc'}

s = {c for c in 'abracadabra' if c not in 'abc'}
# {'d', 'r'}

使用类型构造器,语法,set([iterable]): set(), set('foobar'),set(['a', 'b', 'foo'])

s = set()

s = set('foobar')
# {'o', 'b', 'a', 'f', 'r'}

s = set(['a', 'b', 'foo'])
# {'b', 'a', 'foo'}

创建 Set

向 Set 中添加元素

使用 add(elem) 方法添加单个元素:

s = {'cat'}
s.add('dog')
s.add('bird')
# {'cat', 'bird', 'dog'}

使用 update(*others) 方法添加多个元素:

s = {'cat'}
s.update(['dog','bird','gerbil'])
# {'cat', 'bird', 'dog', 'gerbil'}

向 Set 中添加元素

其实 update 也是一种集合操作,其中的方法命名规则以 _update(*others) 为结尾:

  • intersection_update(*others),更新集合,只保留其中在所有 others 中也存在的元素。
  • difference_update(*others),更新集合,移除其中也存在于 others 中的元素。
  • symmetric_difference_update(other),更新集合,只保留存在于集合的一方而非共同存在的元素。

访问 Set 中的元素

Set 和 List 不一样,无法通过索引访问,可以通过循环遍历元素:

s = {'cat', 'bird', 'dog', 'gerbil'}

for a in s:
  print(a)

在 Python 的集合中,通常还可以通过 in 操作来检查一个元素是否存在于集合中:

s = {'cat', 'bird', 'dog', 'gerbil'}

'cat' in s
# True

'duck' in s
# False

访问 Set 中的元素

从 Set 中删除元素

  • 使用 remove(elem) 删除元素, 如果 elem 不存在于集合中则会引发 KeyError
  • 使用 discard(elem) 删除元素,如果元素 elem 存在于集合中则将其移除;
  • 使用 pop() 从集合中删除并返回任意一个元素。 如果集合为空则会引发 KeyError
  • 使用 clear() 从集合中删除所有元素。
s = {'cat', 'bird', 'dog', 'gerbil'}
s.remove('cat')
s.discard('duck')
s.pop()
s.clear()

从 Set 中删除元素

Python 中 Set 的操作

Python 提供了关于 Set 对象的一整套操作,这些操作通常模仿为数学集定义的操作。可以使用 文氏图(Venn diagrams) 辅助学习。
文氏图(Venn diagrams)

Python 中的大多数集合操作可以通过两种不同的方式执行,可以通过运算符或者通过方法都可以。

操作定义操作符方法
并集返回一个新集合,其中包含来自原集合以及 others 指定的所有集合中的元素。|union(*others)
交集返回一个新集合,其中包含原集合以及 others 指定的所有集合中共有的元素。&intersection(*others)
差集返回一个新集合,其中包含原集合中在 others 指定的其他集合中不存在的元素。-difference(*others)
对称差返回一个新集合,其中的元素或属于原集合或属于 other 指定的其他集合,但不能同时属于两者。^symmetric_difference(other)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python基础.doc》是一份讲解Python编程基础的文档。Python是一种简洁、易学、高效的编程语言,因此它成为了很多人入门编程的首选语言。 这份文档应该包含了Python的基本语法、变量、数据类型、运算符、流程控制、循环语句等内容。首先,它会详细介绍Python的注释规则,以及如何定义和使用变量。变量是存储数据的容器,它可以用于存储不同类型的数据,包括整数、浮点数、字符串等。接下来,文档应该解释各种常见的运算符,如算术运算符、比较运算符和逻辑运算符,以及它们的优先级和使用方法。 然后,文档应该涵盖Python的条件语句和循环语句。条件语句如if语句和else语句,用于根据条件执行不同的代码块。循环语句如for循环和while循环,用于重复执行某些代码段。在解释这些语句时,应该给出一些实际的例子来帮助读者更好地理解。 此外,文档还应该介绍一些常用的内置函数和字符串操作方法。内置函数是Python提供的一些预先编写好的函数,可以直接使用,如print()和len()等。字符串操作方法主要是对字符串进行切片、连接、替换以及查找等操作。 最后,文档还应该提供一些练习题或者编程示例,让读者能够通过实践来巩固所学的知识。 总之,《Python基础.doc》是一份详细讲解Python编程基础的文档,内容应该涵盖Python的基本语法、变量、数据类型、运算符、流程控制、循环语句等,并配有实例和练习题,以帮助读者更好地理解和掌握Python编程知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值