初识set

本文深入探讨了Python中Set的使用方法,包括创建、添加、更新、删除元素,以及如何进行交集、并集、差集和补集等数学操作。同时,对比了Set与Dict的区别,强调了Set的无序性和不可包含可变对象的特点。

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

目录

初识set

重复元素在set中自动被过滤

创建set

add(key)

update(iterable)

remove(key)

 无序、无重复元素集合

set和dict的区别

参考文档


  • 初识set

set是dict中key的集合,没有value,因此在set中没有重复的key,set是无序的

要创建一个set,需要提高一个list作为输入合集

>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}

注意,传入的参数[1, 2, 3]是一个list,而显示的{1, 2, 3}只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。。(其实我也不太懂这句话什么意思)

  • 重复元素在set中自动被过滤

>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}
  • 创建set

创建set的三种方式

>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}

>>> set3 = set('hello')
>>> set3
{'h', 'l', 'e', 'o'}

>>> s = {1,2,3}
>>> s
{1, 2, 3}
  • add(key)

添加元素到set中,可以重复添加,但不会有效果

>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}
  • update(iterable)

    更新集合,参数为可迭代对象

set1 = {'a', 'b', 'x', 'y'}
 
set1.update(('hello', 'world'))
print(set1)
 
# 执行结果:
# {'hello', 'world', 'b', 'a', 'y', 'x'}

#add() 和 update() 比较:
#    add(): 只能添加一个元素到集合
#    update(): 可以添加多个元素到集合,参数为 iterable
  • remove(key)

   删除元素

>>> s.remove(4)
>>> s
{1, 2, 3}
  •  无序、无重复元素集合

set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集、差集、补集等操作:

>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
#交集
>>> s1 & s2
{2, 3}
#并集
>>> s1 | s2
{1, 2, 3, 4}
#差集
>>> s1-s2
{1}
>>> s2-s1
{4}
#交叉补集
>>> s1^s2
{1, 4}
>>> s2^s1
{1, 4}
  • set和dict的区别

set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。

可变:列表、字典

不可变:字符串 、数字、元组

#试试把list或者dict放入set,看看是否会报错。
  • 参考文档

   1.https://www.cnblogs.com/hukey/p/9242339.html

   2.查询官方文档

>>> help(set)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值