Python集合的基本概念_Python自学第二十九节

2022-12-27 14:53:42 浏览数 (1)

集合是无序无索引的集合。在 Python 中,集合用花括号编写。无法通过引用索引来访问 set 中的项目,因为 set 是无序的,项目没有索引。但是可以使用 for 循环遍历 set 项目,或者使用 in 关键字查询集合中是否存在指定值。以下文章供大家参考、学习,如有错误,多多指出,谢谢大家!

集合的概念

  • 集合的底层是字典,集合中的所有元素就是字典中的键,所以集合最主要的特点就是其中的元素不能重复。
  • 集合中的元素是无序的。
  • 使用 set()函数 可以将其他对象转换为集合。

集合示例:

代码语言:javascript复制
>>> a = {20,21,22,80,21,8080}   #定义集合,添加重复元素 21
>>> a
{80, 8080, 20, 21, 22}
>>> b = 'Hello Python'
>>> c = set(b)
>>> c
{' ', 'H', 'P', 'l', 'h', 'n', 'e', 't', 'y', 'o'}
#可以看到 最后变量 都是无序的,并且元素中去除了重复数据

集合常用的基本方法

remove方法:

清除集合中的指定元素

代码语言:javascript复制
>>> a.remove(8080)
>>> a
{80, 20, 21, 22}

clear方法:

清除集合中所有元素

代码语言:javascript复制
>>> a.clear()
>>> a
set()

集合的并集、交集、差集

  • 并集 | :合并数据并去重进行输出
  • 交集 &:合并数据找出重复进行输出
  • 差集 - :去除前者在后者不存在的元素进行输出

并集示例

代码语言:javascript复制
>>> a = {21,22,23,80}
>>> b = {25,80,443,8080}
>>> a | b   #合并去重
{80, 8080, 21, 22, 23, 25, 443}

交集示例

代码语言:javascript复制
>>> a = {21,22,23,80}
>>> b = {25,80,443,8080}
>>> a & b   #80为双方相同元素,输出80
{80}

差集示例

代码语言:javascript复制
>>> a = {21,22,23,80}
>>> b = {25,80,443,8080}
>>> a - b   #只输出b中不包含a中的元素
{21, 22, 23}

练习

将1,2,⋯,9共99个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数。 若干行,每行 33 个数字。按照每行第 11 个数字升序排列。

代码语言:javascript复制
>>> for i in range(100,334):   #三位数由于最后一位 *3 所以最大应该是333
...     m = i*2   #第二位数 * 2
...     n = i*3   #第三位数 * 3
...     key = str(i)   str(m)   str(n)   #转换成字符拼接为key变量
...     flag = set(key)   #set()进行去重赋值给flag变量
#定义key中不能存在0且 flag的字符长度等于9输出 i,m,n
...     if '0' not in key and len(flag) ==9:
...             print(i,m,n)
...
192 384 576
219 438 657
273 546 819
327 654 981

0 人点赞