Python3教程
+ -

Python3 集合set

2019-09-09 5 0

集合(set)是一个无序的不重复元素序列。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

创建格式:

parame = {value01,value02,...}
或者
set(value)
>>>basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket)  # 这里演示的是去重功能
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket # 快速判断元素是否在集合内
True
>>> 'crabgrass' in basket
False
>>> # 下面展示两个集合间的运算.
...
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a  
{'a', 'r', 'b', 'c', 'd'}
>>> a - b  # 集合a中包含而集合b中不包含的元素
{'r', 'd', 'b'}
>>> a | b  # 集合a或b中包含的所有元素
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b  # 集合a和b中都包含了的元素
{'a', 'c'}
>>> a ^ b  # 不同时包含于a和b的元素
{'r', 'd', 'b', 'm', 'z', 'l'}

类似列表推导式,同样集合支持集合推导式(Set comprehension):

>>>a = {x for x in 'abracadabra' if x not in 'abc'}
>>> a
{'r', 'd'}

集合的基本操作

1、添加元素

语 法格式如下:

s.add( x )

将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。

>>>thisset = set(("Google", "bytekits", "Taobao"))
>>> thisset.add("Facebook")
>>> print(thisset)
{'Taobao', 'Facebook', 'Google', 'bytekits'}

还有一个方法,也可以添加元素,且参数可以是列表,元组,字典等,语法格式如下:

s.update( x )

x 可以有多个,用逗号分开。

>>>thisset = set(("Google", "bytekits", "Taobao"))
>>> thisset.update({1,3})
>>> print(thisset)
{1, 3, 'Google', 'Taobao', 'bytekits'}
>>> thisset.update([1,4],[5,6])  
>>> print(thisset)
{1, 3, 4, 5, 6, 'Google', 'Taobao', 'bytekits'}
>>>

2、移除元素

语法格式如下:

s.remove( x )

将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。

>>>thisset = set(("Google", "bytekits", "Taobao"))
>>> thisset.remove("Taobao")
>>> print(thisset)
{'Google', 'bytekits'}
>>> thisset.remove("Facebook")   # 不存在会发生错误
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'Facebook'
>>>

此外还有一个方法也是移除集合中的元素,且如果元素不存在,不会发生错误。格式如下所示:

s.discard( x )
>>>thisset = set(("Google", "bytekits", "Taobao"))
>>> thisset.discard("Facebook")  # 不存在不会发生错误
>>> print(thisset)
{'Taobao', 'Google', 'bytekits'}

我们也可以设置随机删除集合中的一个元素,语法格式如下:

s.pop()

脚本模式实例(Python 3.0+)

thisset = set(("Google", "bytekits", "Taobao", "Facebook"))
x = thisset.pop()
print(x)

输出结果:

$ python3 test.py 
bytekits

多次执行测试结果都不一样。

然而在交互模式,pop 是删除集合的第一个元素(排序后的集合的第一个元素)。

>>>thisset = set(("Google", "bytekits", "Taobao", "Facebook"))
>>> thisset.pop()
'Facebook'
>>> print(thisset)
{'Google', 'Taobao', 'bytekits'}
>>>

3、计算集合元素个数

语 法格式如下:

len(s)

计算集合 s 元素个数。

>>>thisset = set(("Google", "bytekits", "Taobao"))
>>> len(thisset)
3

4、清空集合

语 法格式如下:

s.clear()

清空集合 s。

>>>thisset = set(("Google", "bytekits", "Taobao"))
>>> thisset.clear()
>>> print(thisset)
set()

4、判断元素是否在集合中存在

语 法格式如下:

x in s

判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False。

>>>thisset = set(("Google", "bytekits", "Taobao"))
>>> "bytekits" in thisset
True
>>> "Facebook" in thisset
False
>>>

集合内置方法完整列表

方法 描述
add() 为集合添加元素
clear() 移除集合中的所有元素
copy() 拷贝一个集合
difference() 返回多个集合的差集
difference-update() 移除集合中的元素,该元素在指定的集合也存在。
discard() 删除集合中指定的元素
intersection() 返回集合的交集
intersection-update() 删除集合中的元素,该元素在指定的集合中不存在。
isdisjoint() 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回False。
issubset() 判断指定集合是否为该方法参数集合的子集。
issuperset() 判断该方法的参数集合是否为指定集合的子集
pop() 随机移除元素
remove() 移除指定元素
symmetric-difference() 返回两个集合中不重复的元素集合。
symmetric-difference-update() 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
union() 返回两个集合的并集
update() 给集合添加元素

0 篇笔记 写笔记

C# 多维数组
C# 支持多维数组。多维数组又称为矩形数组。您可以声明一个 string 变量的二维数组,如下:string [,] names;或者,您可以声明一个 int 变量的三维数组,如下:int [ , , ] m;二维数组多维数组最简单的形式是二维数组。一个二维数组,在本质上,是一个一维数组的列表。一个......
Python3 集合Set intersection_update()方法
intersection_update() 方法用于移除两个或更多集合中都不重叠的元素,即计算交集。intersection_update() 方法不同于 intersection() 方法,因为 intersection()方法是返回一个新的集合,而intersection_update() 方法......
C# 数组(Array)
数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。声明数组变量并不是声明 number0、number1、…、number99 一个个单独的变量,而是声明一个就像 numbers 这样的变量,然后使用numbers[0]、numbers[......
Python3 数据结构
本章节我们主要结合前面所学的知识点来介绍Python数据结构。列表Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能。以下是 Python 中列表的方法:方法描述 list.append(x)把一个元素添加到列表的结尾,相当于 a[l......
MongoDB 固定集合
MongoDB 固定集合(CappedCollections)是性能出色且有着固定大小的集合,对于大小固定,我们可以想象其就像一个环形队列,当集合空间用完后,再插入的元素就会覆盖最初始的头部的元素!创建固定集合我们通过createCollection来创建一个固定集合,且capped选项设置为tru......
C# 泛型(Generic)
泛 型(Generic)允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法。您可以通过数据类型的替代参数编写类或方法的规范。当编译器遇到类的构造函数或方法的函数调用时,它会生成代码来处理指定的数据类型。下......
GO语言 Map(集合)
Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash表来实现的。定义 Map可以使用内建......
Python3 集合union()方法
union() 方法返回两个集合的并集,即包含了所有集合元素,重复的元素只会出现一次。语法union() 方法语法:set.union(set1, set2...)参数set1 — 必需,合并的目标集合set2 — 可选,其他要合并的集合,可以多个,多个使用逗号 , 隔开。返回值返回一个新集合。实......
Python3 集合update() 方法
update() 方法用于修改当前集合,可以添加新的元素集合到当前集合中,如果添加的元素集合中已存在,则该元素只会出现一次,重复的会忽略。语法update() 方法语法:set.update(set)参数set — 必需,可以是元素集合返回值无。实例合并两个集合,重复元素只会出现一次: ......
C# 集合(Collection)
集合(Collection)类是专门用于数据存储和检索的类。这些类提供了对栈(stack)、队列(queue)、列表(list)和哈希表(hashtable)的支持。大多数集合类实现了相同的接口。集合(Collection)类服务于不同的目的,如为元素动态分配内存,基于索引访问列表项等等。这些类创建......
Python3 集合intersection() 方法
intersection() 方法用于返回两个或更多集合中都包含的元素,即交集。语法intersection() 方法语法:set.intersection(set1, set2 ... etc)参数set1 — 必需,要查找相同元素集合set2 — 可选,其他要查找相同元素集合,可以多个,多个......
MongoDB 删除集合
本章节我们为大家介绍如何使用 MongoDB 来删除集合。MongoDB 中使用 drop() 方法来删除集合。语法格式:db.collection.drop()参数说明:无返回值如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false。实例在数据库 mydb 中,我们可以先......
Python3 集合set
集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。创建格式:parame = {value01,value02,...}或者set(value)>>......
MongoDB 创建集合
本章节我们为大家介绍如何使用 MongoDB 来创建集合。MongoDB 中使用 createCollection() 方法来创建集合。语法格式:db.createCollection(name, options)参数说明:name: 要创建的集合名称options: 可选参数, 指定有关内存大小及......
Python3 集合symmetric_difference()方法
symmetric_difference() 方法返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。语法symmetric_difference() 方法语法:set.symmetric_difference(set)参数set — 集合返回值返回一个新的集合。实例返回两个集合组成的新......
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!