pyhton3数据类型之set

本文介绍了Python中集合(set)的基本概念及使用方法,包括创建、初始化集合,以及如何进行并集、交集、差集等常见操作。此外还详细解释了集合的常用函数,例如添加、删除元素等。

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

一、创建一个集合(set)

初始化一个有三个元素的集合,set1 = {'a','n',9}
初始化无元素的集合 set2 = set(),和初始化一个空list不同,不能使用{},{}初始化的是一个没有元素的字典(dict)
集合的特点是:无重复元素,不支持索引,和数学上定义的集合一样

二、集合的常用操作

set1 = {‘a’, ‘c’, ‘b’}
set2 = {‘n’,’m’,’c’}

操作描述结果
set1 | set2求两个集合的并集{‘m’, ‘b’, ‘n’, ‘c’, ‘a’}
set1 & set2求两个集合的交集{‘c’}
set1 - set2求两个集合的差集{‘a’, ‘b’}
set1 ^ set2求两个集合的对称差集{‘n’, ‘b’, ‘a’, ‘m’}
‘a’ in set1判断一个元素是否在集合中True
‘a’ not in set1

三、集合的常用函数

函数说明描述
remove(object)从集合中移除一个元素移除的元素不在set中,会抛出KeyError
pop()从集合中随机移除一个元素如果set为空会抛出KeyError
copy()浅拷贝一个set返回新的set
clean()移除集合中所有元素返回None
add(object)给集合中添加一个元素若元素已经存在集合中,该操作对集合无任何影响
difference(iterable)求差集参数为空或者必须是一个或多个可迭代的对象,否则会抛出TypeError
difference_update(iterable)求差集,并且用差集更新原来的集合参数为空或参数为空或者必须是一个可迭代的对象,否则会抛出TypeError
discard(elelmet)移除集合中某个元素如这个元素不存在,则不对集合做任何操作
intersection(iterable)求交集参数可以为空或者必须是一个可迭代的对象
intersection_update(iterable)求交集并更新原set返回None
isdisjoint(iterable)交集的结果是空集合返回True
issubset(iterable)判断集合是否是另外一个集合的子集
issuperset(iterable)判断一个集合的是否是另外一个集合的父集
symmetric_difference(iterable)求两个集合的对称差集返回新set
symmetric_difference_update(iterable)将两个集合堆成差集更新掉原set返回None
union(iterable)求并集返回新的set
update(iterable)更新集合返回None

测试:

if __name__ == '__main__':

    print(type({}))
    set1 = {'a', 'c', 'b'}
    set2 = {'n','m','c'}

    print(set1 | set2)
    print(set1 & set2)
    print(set1 - set2)
    print(set2 - set1)
    print(set1 ^ set2)

    print( 'a' not in set1)
    print( 'a' in set1)

    set1.remove('a')
    print(set1)

    print(set1.pop())
    print(set1)

    print(set1.copy())

    set1.clear()
    print(set1)

    set1.add('l')
    print(set1)

    set3 = {'d','c','l'}
    print(set3.difference(['m','c']))
    print(set3)

    print(set3.difference_update(['m','c']))
    print(set3)

    print(set3.discard('d'))
    print(set3)

    print(set2.intersection(set3))
    print(set2.intersection_update(set3))


    set4 = {'x','n','o'}
    print(set4.isdisjoint('l'))
    print(set4)

    print(set4.issubset({'x','n','m','o'}))

    print(set4.issuperset('o'))

    print(set4.symmetric_difference(['f','x']))
    print(set4)

    print(set4.symmetric_difference_update(['f','x']))
    print(set4)

    print(set4.union('123'))
    print(set4)

    print(set4.update('123','SDF'))
    print(set4)

测试的结果

<class 'dict'>
{'a', 'n', 'b', 'm', 'c'}
{'c'}
{'a', 'b'}
{'n', 'm'}
{'b', 'a', 'n', 'm'}
False
True
{'c', 'b'}
c
{'b'}
{'b'}
set()
{'l'}
{'d', 'l'}
{'d', 'l', 'c'}
None
{'d', 'l'}
None
{'l'}
set()
None
True
{'x', 'n', 'o'}
True
True
{'f', 'n', 'o'}
{'x', 'n', 'o'}
None
{'f', 'n', 'o'}
{'2', 'o', '1', '3', 'n', 'f'}
{'f', 'n', 'o'}
None
{'D', '2', 'S', 'o', '1', 'F', '3', 'n', 'f'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值