python定义集合_Python集合的概念是什么?Python集合的介绍

本篇文章给大家带来的内容是关于Python集合的概念是什么?Python集合的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

集合的描述

集合是无序的、不重复的数据集合,它本身是可变的,但里面的元素是不可变类型(这里要注意,即使是含有列表的元组也不可以,必须是完全不可变类型)

创建集合

创建集合可以使用大括号{}来创建,元素间用逗号分隔,但是不能用它来创建空集合,因为{}创建的是空字典。如 set1 = {1,2,3}

也可以使用set()函数来创建集合,其中的参数为可迭代对象即可(比如字符串、列表、元组、迭代器等),前提是元素中必须是不可变类型。i = 'abcdefg'

a =set(i)

print(type(a))

print(a)

----------

{'b', 'a', 'f', 'd', 'g', 'e', 'c'}

增 add update

add(elem)

可以向集合中添加新元素,如果该元素已存在则不做任何改变s1 = {1,2,3}

s1.add('qwe')

print(s1)

----------

{1, 2, 3, 'qwe'}

update(*others)

可将其他可迭代对象(比如字符串、列表、元组)添加到集合中,自动删除重复元素s1 = {1,2,3}

it = [3,4,5]

s1.update(it)

print(s1)

----------

{1, 2, 3, 4, 5}

删 remove(elem) discard(elem) pop() clear()

remove(elem)

将元素从集合中删除,如果该元素不存在则会报错。s1 = {1,2,3}

s1.remove(2)

print(s1)

----------

{1, 3}

discard(elem)

和remove一样可以将元素从集合中删除,区别是如果元素不存在则不会报错。s1 = {1,2,3}

s1.discard(6)

print(s1)

----------

{1, 2, 3}

pop()

从集合中随机删除一个元素,并且返回该元素,如果集合为空则会报错s1 = {1,2,3}

a = s1.pop()

print(s1)

print(a)

----------

{2, 3}

1

clear()

用于清空集合。

几种运算方法

对于集合来讲有几种运算方法:交集、并集、差集、反交集、子集、超集

下面用代码来详细说明每种方法的用法s1 = {1,2,3,4,5}

s2 = {3,4,5,6,7}

print('交集:',s1 & s2) #可用&或者intersection,输出一个新的集合,包含共同拥有的元素

print('交集:',s1.intersection(s2))

print('并集:',s1 | s2) #可用|或者union,输出一个新的集合,包含两个集合中所有的元素(去重)

print('并集:',s1.union(s2))

print('差集:',s1 - s2) #可用 - 或者difference,输出一个新的集合,包含前一个集合中除去共有的元素

print('差集:',s1.difference(s2))

print('反交集:',s1 ^ s2) #可用^或者 symmetric_difference,输出一个新的集合,包含两个集合中除去共有的元素后剩余的所有元素

print('反交集:',s1.symmetric_difference(s2))交集: {3, 4, 5}

交集: {3, 4, 5}

并集: {1, 2, 3, 4, 5, 6, 7}

并集: {1, 2, 3, 4, 5, 6, 7}

差集: {1, 2}

差集: {1, 2}

反交集: {1, 2, 6, 7}

反交集: {1, 2, 6, 7}

子集与超集,简单来讲就是一个集合中的元素包含另一个集合中所有的元素,则“大的”集合叫超集,“小的”叫子集s1 = {1,2,3}

s2 = {1,2,3,4,5}

print(s1.issubset(s2)) #输出为True,s1是s2的子集

print(s2.issuperset(s1))#输出为True,s2是s1的超集

----------

True

True

另外,使用frozenset('集合名'),可以把集合变成不可变集合

以上就是Python集合的概念是什么?Python集合的介绍的详细内容,更多请关注php中文网其它相关文章!

article_wechat2021.jpg?1111

本文转载于:segmentfault思否,如有侵犯,请联系a@php.cn删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值