[阶段一] 6. Python集合常用方法

python集合常用方法

  • 什么是集合?

集合(set)是一个无序的元素不重复的序列,通常用来对两个列表进行交并差的处理。

集合支持所有不可变的数据类型的元素(数字、字符串、元组)。集合与列表的区别如下:

功能 列表 集合
顺序 有序 无序
元素 可重复 不可重复
功能 用于数据的使用 用于数据的交并差集的获取
索引 有索引 无索引
符号 [],如 [1, 2, 3] {},如 {1, 2, 3}

集合只可以通过 set 函数来创建,不能使用 {} 来创建空集合,{} 创建出来的是空字典。

>>> set1 = set()

>>> type(set1)
<class 'set'>

>>> set2 = {
    
    }

>>> type(set2)
<class 'dict'>

使用集合需要注意:

集合无法通过索引来获取元素

集合没有任何获取元素的方法

集合只是用来处理列表或元组的一种临时类型,不适合存储或传输
  • add 函数:

add 函数的功能是在集合中添加一个元素,如果集合中已存在该元素,则该函数不执行。

用法:set.add(item),参数 item 表示要添加到集合中的元素,无返回值。示例:

>>> set_1 = set()

>>> set_1.add('xiaobai')

>>> set_1
{
    
    'xiaobai'}
  • update 函数:

update 函数的功能是在集合中加入一个新的集合(或列表、元组、字符串),如果新集合中的元素在原集合中存在则忽略。

用法:set.update(iterable),参数 iterable 表示要加入的新的集合(或列表、元组、字符串),无返回值。示例:

>>> set_1
{
    
    'xiaobai'}

>>> list_1 = ['xiaobai', '18', 'student']

>>> set_1.update(list_1)

>>> set_1
['xiaobai', 'student', '18'}
  • remove 函数:

remove 函数的功能是删除集合中的一个元素,如果元素不存在则会报错。

用法:set.remove(item),参数 item 表示要删除的元素,无返回值。示例:

>>> set_1
{
    
    'xiaobai', 'student', '18'}

>>> set_1.remove('student')

>>> set_1
{
    
    'xiaobai', '18'}

>>> set_1.remove('teacher')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'teacher'
  • clear 函数:

clear 函数的功能是清空当前集合中的所有元素。

用法:set.clear(),括号内无参数,无返回值。示例:

>>> set_1
{
    
    'xiaobai', '18'}

>>> set_1.clear()

>>> set_1
set()

此外,因为集合没有索引,所以 del 函数只能删除集合对象本身,而无法删除集合中的元素。

  • difference 函数:

difference 函数的功能是返回集合的差集,即返回的集合元素包含在当前集合中,但不包含在需要对比的集合中。

用法:set_1.difference(set_2),参数 set_2 表示当前集合需要对比的集合。示例:

>>> set_1 = {
    
     1, 3, 5, 7}

>>> set_2 = {
    
    1, 2, 3, 4, 5}

>>> set_1.difference(set_2)
{
    
    7}

>>> set_2.difference(set_1)
{
    
    2, 4}
  • intersection 函数:

intersection 函数的功能是返回两个或更多集合的交集,即返回的集合元素必须都存在于当前集合和需要对比的集合中。

用法:set_1.intersection(set_2...),参数可以有任意多个,set_2 表示当前集合需要对比的集合。示例:

>>> set_1 = {
    
     1, 3, 5, 7}

>>> set_2 = {
    
    1, 2, 3, 4, 5}

>>> set_3 = {
    
    3, 7, 5, 6}

>>> set_1.intersection(set_2, set_3)
{
    
    3, 5}

>>> set_1.intersection(set_2)
{
    
    1, 3, 5}
  • union 函数:

union 函数的功能是返回两个或更多集合的并集,即返回的集合元素是所有集合中不重复的元素。

用法:set_1.union(set_2...),参数可以有任意多个,set_2 表示当前集合需要对比的集合。示例:

>>> set_1 = {
    
     1, 3, 5, 7}

>>> set_2 = {
    
    1, 2, 3, 4, 5}

>>> set_3 = {
    
    3, 7, 5, 6}

>>> set_1.union(set_2, set_3)
{
    
    1, 2, 3, 4, 5, 6, 7}
  • isdisjoint 函数:

isdisjoint 函数的功能是判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False

用法:set_1.isdisjoint(set_2),参数 set_2 表示当前集合需要对比的集合。示例:

>>> set_1 = {
    
     1, 3, 5, 7}

>>> set_2 = {
    
    1, 2, 3, 4, 5}

>>> set_3 = {
    
    6, 8}

>>> set_1.isdisjoint(set_2)
False

>>> set_1.isdisjoint(set_3)
True
  • &|- 运算符:

& 可以计算两个集合的交集,与 intersection 函数实现的功能一样;| 可以计算两个集合的并集,与 union 函数实现的功能一样;- 可以计算两个集合的差集,与 difference 函数实现的功能一样。

不同之处在于,intersectionuniondifference 函数的参数可以是集合、列表、字典或字符串。而 &|- 运算符的左右两边必须是集合。


猜你喜欢

转载自blog.csdn.net/miss1181248983/article/details/119829755