Python中的集合(Set)

简介: Python中的集合(Set)

Python中的集合(Set)是一种无序、不重复的数据结构,它的主要特性包括:

  1. 无序性:集合中的元素没有特定的顺序,你不能通过索引访问集合中的元素。

  2. 唯一性:集合中的元素是唯一的,如果尝试添加一个已经存在的元素到集合中,该操作将被忽略。

  3. 哈希表实现:Python集合在内部使用哈希表进行存储和查找,因此对集合的操作通常具有良好的时间复杂度。

创建集合的方式有以下两种:

  • 使用大括号 {} 和逗号分隔的元素列表:

    s = {
         1, 2, 3, 4}
    
  • 使用 set() 函数和一个可迭代对象(如列表、元组等):

    s = set([1, 2, 3, 4])
    

空集合的创建必须使用 set() 函数,因为 {} 用于创建空字典:

empty_set = set()

集合的一些常用方法和操作包括:

  • 添加元素:add(element)
  • 删除元素:remove(element)discard(element)
  • 清空集合:clear()
  • 集合大小(元素数量):len(s)
  • 并集:union(other_set), 可用 | 运算符表示
  • 交集:intersection(other_set), 可用 & 运算符表示
  • 差集(集合A中存在但不在集合B中的元素):difference(other_set), 可用 - 运算符表示
  • 对称差集(两个集合中存在但不在对方的元素):symmetric_difference(other_set), 可用 ^ 运算符表示
  • 判断是否为子集:issubset(other_set), 可用 <= 运算符表示
  • 判断是否为超集:issuperset(other_set), 可用 >= 运算符表示
  • 判断是否相等:== 运算符

例如:

s1 = {
   1, 2, 3}
s2 = {
   2, 3, 4}

# 添加元素
s1.add(5)

# 删除元素
s1.remove(2)

# 并集
union_set = s1.union(s2)

# 交集
intersection_set = s1.intersection(s2)

# 差集
difference_set = s1.difference(s2)

# 对称差集
sym_diff_set = s1.symmetric_difference(s2)

# 判断子集和超集
print(s1.issubset(s2))  # 输出:False
print(s1.issuperset(s2))  # 输出:False

这些基本操作和方法使得集合在处理无序、不重复数据时非常有用,例如去除列表中的重复元素、计算多个集合的交集或并集等。

目录
相关文章
|
28天前
|
Java
【Java集合类面试二十三】、List和Set有什么区别?
List和Set的主要区别在于List是一个有序且允许元素重复的集合,而Set是一个无序且元素不重复的集合。
|
1月前
|
Java 程序员 C语言
赶快收藏!全网最佳Set集合详解:HashSet、TreeSet!
面试官:那TreeSet要怎么定制排序?TreeSet的自定义排序我们要利用Comparator接口,通过向TreeSet传入自定义排序规则的Comparator来实现。官方源码是这么解释的,南友们看一看。// 构造一个新的空树集,根据指定的比较器进行排序。// 插入到集合中的所有元素都必须能够通过指定的比较器相互比较: comparator. compare(e1, e2)不得对集合中的任何元素e1和e2抛出ClassCastException。
赶快收藏!全网最佳Set集合详解:HashSet、TreeSet!
|
1月前
|
存储 安全 Java
java集合框架复习----(4)Map、List、set
这篇文章是Java集合框架的复习总结,重点介绍了Map集合的特点和HashMap的使用,以及Collections工具类的使用示例,同时回顾了List、Set和Map集合的概念和特点,以及Collection工具类的作用。
java集合框架复习----(4)Map、List、set
|
21天前
|
数据采集 编解码 算法
Github | 推荐一个Python脚本集合项目
Github | 推荐一个Python脚本集合项目
|
20天前
|
索引 Python 容器
为什么Python中会有集合set类型?
为什么Python中会有集合set类型?
|
21天前
|
Python
python中set和frozenset方法和区别
python中set和frozenset方法和区别
|
30天前
|
存储 NoSQL 算法
Redis6入门到实战------ 三、常用五大数据类型(列表(List)、集合(Set)、哈希(Hash)、Zset(sorted set))
这是关于Redis 6入门到实战的文章,具体内容涉及Redis的五大数据类型:列表(List)、集合(Set)、哈希(Hash)、有序集合(Zset(sorted set))。文章详细介绍了这些数据类型的特点、常用命令以及它们背后的数据结构。如果您有任何关于Redis的具体问题或需要进一步的帮助,请随时告诉我。
|
29天前
|
存储 索引 Python
五:《Python基础语法汇总》— 列表&元组&集合
本篇文章讲解了关于列表;元组和集合这三个基本数据类型的常用方法与函数。及同一性操作符;成员判断符;浅拷贝与深拷贝等多方面的知识点
23 4
|
28天前
|
Java
【Java集合类面试二十二】、Map和Set有什么区别?
该CSDN博客文章讨论了Map和Set的区别,但提供的内容摘要并未直接解释这两种集合类型的差异。通常,Map是一种键值对集合,提供通过键快速检索值的能力,而Set是一个不允许重复元素的集合。
|
28天前
|
JavaScript 前端开发 Python
成功解决:Can‘t find Python executable “python“, you can set the PYTHON env variable.
这篇文章分享了作者在运行前端Vue项目时遇到的关于Python执行环境的问题和解决方法。问题是由于找不到Python可执行文件导致的编译错误,解决方法包括安装编译环境、卸载并重新安装出现问题的`node-sass`包,并重新执行`npm install`和`npm run dev`。
成功解决:Can‘t find Python executable “python“, you can set the PYTHON env variable.