Python--集合

文章详细介绍了Python中集合的创建、访问元素、增删查改操作(包括add、update、remove、discard、pop、clear方法)以及集合的交集、并集、差集、补集等运算,提供了丰富的示例代码进行说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、创建集合

1、使用{}创建集合

set1 = {'a', 'b', 'c', 3, 3}
print(set1)

#输出
{'c', 3, 'b', 'a'}

从此例可以得出两点:
第一:集合打印出的元素顺序和定义时的顺序不一定是一致的!
第二:集合会将里面重复的元素值自动去除!

set1 = {}
print(type(set1))

set2 = {1}
print(type(set2))

#输出结果
<class 'dict'>
<class 'set'>

根据上例可以看到,使用{}创建集合时,如果{}里面没有元素,则它不是一个集合,而是一个字典!

2、使用set()创建集合

格式:set([iterable])
iterable :可迭代对象对象;

set1 = set()
print(type(set1))

set2 = set([1, 2])
print(type(set2))
print(set2)

#输出结果
<class 'set'>
<class 'set'>
{1, 2}

二、访问集合元素

由于set 集合中的元素是无序的,因此无法使用索引(下标)访问元素。通常使用for循环遍历访问集合元素。

set1 = {1, 5, 'k'}
for i in set1:
    print(i)

#结果
1
k
5

三、集合的增、删、查、改操作

1、添加元素

1)、使用add()添加

格式:set.add(element)

set1 = {1, 5, 'k'}
set1.add('element')
for i in set1:
    print(i)

#输出
element
1
5
k

如果要添加的元素已存在,则add() 方法就不会添加元素。

2)、使用update()添加元素

格式:set.update(iterable)
iterable:可迭代对象

set1 = {1, 5, 'k'}
set1.update({'element'})
set1.update([22, 33])
set1.update([44, 55])
for i in set1:
    print(i)

#输出
k
1
33
5
44
55
element
22

2、删除元素

1)、使用remove()删除元素

格式:set.remove(item)

remove() 方法在移除一个不存在的元素时会发生错误。

set1 = {1, 5, 'k'}
set1.remove(1) #删除元素1
for i in set1:
    print(i)

#输出
k
5

2)、使用discard()删除元素

格式:set.discard(value)

discard() 方法在移除一个不存在的元素时不会发生错误。

set1 = {1, 5, 'k'}
set1.discard(5) #删除元素5
for i in set1:
    print(i)

#输出
1
k

3)、使用pop()删除元素

格式:set.pop()

pop()方法会随机删除元素。

set1 = {1, 5, 'k', 6, 7}
set1.pop()
set1.pop()
for i in set1:
    print(i)

#输出
6
7
k

4)、使用clear()清空集合

格式:set.clear()

set1 = {1, 5, 'k', 6, 7}
set1.clear() #清空集合

5)、使用del语句删除集合

set1 = {1, 5, 'k', 6, 7}
del set1 #彻底删除集合
for i in set1:
    print(i)

#输出
NameError: name 'set1' is not defined. Did you mean: 'set'?

3、查找元素

可以使用in和not in判断某个元素是否在集合中。

set1 = {1, 5, 'k', 6, 7}
if 'k' in set1:
    print('ok')
if 'h' not in set1:
    print('No')

#输出
ok
No

4、修改元素

set不支持修改元素。若想要修改元素,可以先将某个元素删除,然后通过add()或者update()重新添加这个元素。

set1 = {1, 5, 'k', 6, 7}
set1.remove('k') #将元素k修改为h,先删除再添加
set1.add('h')
print(set1)

#输出
{1, 5, 6, 7, 'h'}

四、集合的运算

1、交集

取两集合公共的元素。

1)、使用“&”运算符

set1 = {1, 2, 3}
set2 = {1, 3, 5}

print(set1 & set2) #集合set1和set2做交集运算

#输出
{1, 3}

2、使用intersection()方法

set1 = {1, 2, 3}
set2 = {1, 3, 5}

print(set1.intersection(set2)) #集合set1和set2做交集运算

#输出
{1, 3}

2、并集

取两集合全部的元素。

1)、使用“|”运算符

set1 = {1, 2, 3}
set2 = {1, 3, 5}

print(set1 | set2) #集合set1和set2做并集运算

#输出
{1, 2, 3, 5}

2)、使用union()方法

set1 = {1, 2, 3}
set2 = {1, 3, 5}

print(set1.union(set2)) #集合set1和set2做并集运算

#输出
{1, 2, 3, 5}

3、差集

取一个集合(被减数集合)中另一个集合没有的元素。

1)、使用“-”运算符

set1 = {1, 2, 3}
set2 = {1, 3, 5}

print(set1 - set2)
print(set2 - set1)

#输出
{2}
{5}

2)、使用difference()方法

set1 = {1, 2, 3}
set2 = {1, 3, 5}

print(set1.difference(set2))
print(set2.difference(set1))

#输出
{2}
{5}

4、补集

取集合 A 和 B 中不属于 A&B 的元素。

使用“-”运算符

set1 = {1, 2, 3}
set2 = {1, 3, 5}
print(set1^set2)

#输出
{2, 5}

五、集合方法汇总

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值