【Python】 【集合】set用法特性记录,set中加入自定义对象,具体使用举例

本文详细介绍了Python中Set的数据结构特性,包括其无重复、无序的特点,以及插入、删除和查找元素的时间复杂度均为O(1)。通过实例展示了如何创建、添加元素到Set,以及如何进行交集、并集、差集和补集的操作。同时,文章还揭示了Set基于哈希表的实现原理,使读者理解其高效性能的原因。
摘要由CSDN通过智能技术生成

目录

1.特性与时间复杂度

2.用法

1.创造一个set

2.向set中添加元素

3.删除set中的元素

4.求交并补

3、原理记录


1.特性与时间复杂度

Set的特性是其中的元素不重复无序

Set插入一个元素、删除一个元素、查找一个元素的时间复杂度都为O(1)。

2.用法

set中的元素都必须是可迭代的对象,如字符串,list

1.创造一个set

使用如下语句创建一个set,注意参数必须为可迭代对象

set(可迭代对象)

例子如下

class my_class:
    def __init__(self):
        self.test='abc'


my_object=my_class()
#set()参数为一个字符串,set会将其去重
#set将字符串中的每个字符视为一个元素
test=set('bbcd')
print(test)
#注意此时set()参数是一个list
#set将list中的每个元素视为一个元素
test2=set([my_object])
print(test2)

输出为

第一个set中元素为字符串中字符且去重了

第二个set中只有我们自定义的my_object对象

{'b', 'c', 'd'}
{<__main__.my_class object at 0x000001FBE52A5848>}

2.向set中添加元素

使用如下语句

setname.add()

​

例子:

x=set([1,2,3,4])
print("before:",x)
x.add(6)
print("after:",x)

结果为:

before: {1, 2, 3, 4}
after: {1, 2, 3, 4, 6}

3.删除set中的元素

setname.remove(6)

4.求交并补

#x,y为set
#求交集,返回同时在x与y中的元素
x&y
#求并集,返回一个包含x与y中所有元素的set(会去重)
x|y
#求差集,返回包含x去除y中有的元素剩余元素的集合
x-y
#求补集,返回x与y的非共同元素的集合
x^y

3、原理记录

Set实际的原理是基于哈希表,每次插入删除查找元素都是计算该元素的哈希值,再基于哈希值查找表中是否有相同元素,再进行相应操作。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值