python3数据类型之集合

python3中有一个不同于列表、元组、字符串的一个数据类型,叫集合。

集合表现形式和字典差不多,都是用{}括起来,两者都是无序的数据类型,不同的是,字典是{'1':'2','3':'4'}这种类型的,而集合则是{'1','2','3','4'}这种类型的。

集合一个有别于列表、元组、字符串的特点是无序,类似于列表、字符这种的数据都有序列,比如第一位是多少,最后一位是多少,集合是没有的,即使使用[1]或者[:5]这种的方式也无法读取。

>>> {'1','2','3'}[1]
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    {'1','2','3'}[1]
TypeError: 'set' object does not support indexing

>>> {'1','2','3'}[1:]
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    {'1','2','3'}[1:]
TypeError: 'set' object is not subscriptable

集合的另一个特性是不重复。类似于列表、字符这种的数据,可以有很多重复的数据,比如可以有十个h或者十个1,输出后还是有有十个h或者十个1。但是集合会自动合并重复数据。

>>> {'1','2','3','1','2','3','1','2','3'}
{'3', '1', '2'}

但是集合可以正常判定有多少字符,某个字符是否包含或不包含在集合内,也可以判定谁是最大的,谁是最小的。

>>> max({'1','2','3'})
'3'

>>> min({'1','2','3'})
'1'

>>> 1 not in ({'1','2','3'})
True

>>> 1 in({'1','2','3'})
False

集合虽然无序,但是可以求集合间的差集。

>>> {1,2,3,4,5,6,7,8,9} - {7,8}
{1, 2, 3, 4, 5, 6, 9}

也可以求集合间的交集

>>> {1,2,3,4,5,6,7,8,9} & {7,8}
{8, 7}

还可以求集合间的合集/并集

>>> {1,2,3,4,5,6,7,8,9} | {7,8}
{1, 2, 3, 4, 5, 6, 7, 8, 9}

最后,定义空的集合并非是用{}即可,而是set()

>>> type(set())
<class 'set'>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值