python:集合(set)的定义和常用操作

什么是集合

集合(set)是一个无序的、元素不允许重复的数据容器,与列表或元组不同,集合不允许重复值,也就是说集合中的每个元素都必须是唯一的。集合是可变的,这意味着在创建集合后你可以添加或移除元素。

集合的特点:

  • 可以容纳多个数据
  • 可以容纳不同类型的数据(混装)
  • 数据是无序的(不支持下标索引)
  • 不允许重复数据存在
  • 可以修改(增加或删除元素)
  • 支持for循环遍历

集合的定义

语法

# 定义集合字面量
{元素, 元素, ..., 元素}

# 定义集合变量
变量名称 = {元素, 元素, ..., 元素}

# 定义空集合
变量名称 = set()

示例

示例1:定义空集合

a = set()
print(a)
print(type(a))

运行结果:
在这里插入图片描述

示例2:定义集合字面量

{'hello', 'world', 1, 2}

示例3:定义集合变量

a = {'hello', 'world', 1, 2}
print(a)
print(type(a))

运行结果:
在这里插入图片描述

示例4:集合中的元素不重复

a = {'hello', 'world', 1, 2, 1}
print(f'集合a的内容是:{a}')
print(f'集合a的元素个数是:{len(a)}')
print(type(a))

运行结果:
在这里插入图片描述

集合的常用操作

因为集合是无序的,所以集合不支持通过下标索引访问。

集合允许修改。

添加新元素

语法

集合.add(元素)

将指定元素添加到集合内。如果该元素已经存在于集合中,则集合保持不变。

示例1:添加的元素不重复

my_set = {'hello', 'world'}
my_set.add('python')
my_set.add('java')
print(f'添加新元素后,集合的内容是:{my_set}')

运行结果:
在这里插入图片描述

示例2:添加重复的元素:原集合不会改变

my_set = {'hello', 'world', 'python'}
print(f'添加新元素前,集合的内容是:{my_set}')

my_set.add('python')
print(f'添加新元素后,集合的内容是:{my_set}')

运行结果:
在这里插入图片描述

移除元素

语法

集合.remove(元素)

将指定元素从集合中移除。如果元素不存在,将抛出KeyError。

示例1:正常移除元素

my_set = {'hello', 'world', 'python'}
print(f'移除元素前,集合的内容是:{my_set}')

my_set.remove('python')
print(f'移除元素后,集合的内容是:{my_set}')

运行结果:
在这里插入图片描述

示例2:移除元素,但元素在集合中不存在,抛出KeyError

my_set = {'hello', 'world', 'python'}
print(f'移除元素前,集合的内容是:{my_set}')

my_set.remove('java')
print(f'移除元素后,集合的内容是:{my_set}')

运行结果:
在这里插入图片描述

从集合中随机移除元素

语法

集合.pop()

从集合中随机移除并返回这个元素。如果集合为空,抛出KeyError。

示例1:正常随机移除一个元素

my_set = {'hello', 'world', 'python'}
print(f'移除元素前,集合的内容是:{my_set}')

element = my_set.pop()
print(f'移除的元素是:{element},随机移除元素后,集合的内容是:{my_set}')

一次运行的结果:
在这里插入图片描述

示例2:集合为空,随机移除一个元素,抛出KeyError

my_set = set()
print(f'移除元素前,集合的内容是:{my_set}')

my_set.pop()
print(f'随机移除元素后,集合的内容是:{my_set}')

运行结果:
在这里插入图片描述

清空集合

语法

集合.clear()

从集合中移除所有元素。

示例

my_set = {'hello', 'world', 'python'}
print(f'清空集合前,集合的内容是:{my_set}')

element = my_set.clear()
print(f'清空集合后,集合的内容是:{my_set}')

运行结果:
在这里插入图片描述

取两个集合的差集

语法

集合1.difference(集合2)

取出集合1 和 集合2 的差集(集合1中有而集合2中没有的)。
返回:一个新的集合,集合1 和 集合2 不变。

示例

set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}

set3 = set1.difference(set2)
set4 = set2.difference(set1)

print(f'取差集后,原有set1的内容是:{set1}')
print(f'取差集后,原有set2的内容是:{set2}')
print(f'set1和set2的差集是:{set3}')
print(f'set2和set1的差集是:{set4}')

运行结果:
在这里插入图片描述

消除两个集合的差集

语法

集合1.difference_update(集合2)

功能:对比集合1 和 集合2,在集合1内,删除和集合2相同的元素。

结果:集合1被修改,而集合2不变。

示例

set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}

set1.difference_update(set2)

print(f'消除差集后,set1的内容是:{set1}')
print(f'除差集后,set2的内容是:{set2}')

运行结果:
在这里插入图片描述

两个集合合并

语法

集合1.union(集合2)

功能:将集合1 和 集合2组成新集合。

结果:得到新集合,集合1 和 集合2不变。

示例

set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}

set3 = set1.union(set2)

print(f'set1 和 set2 合并后的集合为:{set3}')
print(f'合并后,原有集合set1为:{set1}')
print(f'合并后,原有集合set2为:{set2}')

运行输出:
在这里插入图片描述

统计集合的元素数量

语法

len(集合)

示例:赋值时没有重复元素

set1 = {1, 2, 3, 4, 5}
num = len(set1)
print(f'集合set1的元素数量是:{num}')

运行结果:
在这里插入图片描述

示例:赋值时有重复元素

set1 = {1, 2, 3, 4, 5, 1, 2, 3, 4, 5}
num = len(set1)
print(f'集合set1的元素数量是:{num}')

运行结果:
在这里插入图片描述

集合的遍历

集合没有索引下标,所以不支持while循环遍历,但可以用for循环遍历。

set1 = {1, 2, 3, 4, 5}
for element in set1:
    print(element)

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值