说说Python集合的那些事儿

大家好,我是IT共享者,人称皮皮。今天给大家来捋一捋Python集合。

一、什么是集合?

集合(set)和字典(dict)类似,它是一组 key 的集合,但不存储 value。集合的特性就是:key 不能重复。

二、集合常用操作

1. 创建集合

set 的创建可以使用 {} 也可以使用 set 函数:

1s1 = {'a', 'b', 'c', 'a', 'd', 'b'} # 使用 {} 2print(s1) 3(['a', 'c', 'b', 'd']) 4 5s2 = set('helloworld') # 使用 set(),接收一个字符串 6print(s2) 7set(['e', 'd', 'h', 'l', 'o', 'r', 'w']) 8s3 = set(['.mp3', '.mp4', '.rmvb', '.mkv', '.mp3']) # 使用 set(),接收一个列表 9print(s3) 10set(['.mp3', '.mkv', '.rmvb', '.mp4'])

2. 遍历集合

1s = {'a', 'b', 'c', 'a', 'd', 'b'} 2for e in s: 3 print(e)

3. 添加元素

add() 方法可以将元素添加到 set 中,可以重复添加,但没有效果。

1s = {'a', 'b', 'c', 'a', 'd', 'b'} 2print(s) 3set(['a', 'c', 'b', 'd']) 4s.add('e') 5print(s) 6set(['a', 'c', 'b', 'e', 'd']) 7s.add('a') 8print(s) 9set(['a', 'c', 'b', 'e', 'd']) 10s.add(4) 11print(s) 12set(['a', 'c', 'b', 4, 'd', 'e'])

4. 删除元素

remove() 方法可以删除集合中的元素, 但是删除不存在的元素,会抛出 KeyError,可改用 discard()

例子:

1s = {'a', 'b', 'c', 'a', 'd', 'b'} 2print(s) 3set(['a', 'c', 'b', 'd']) 4s.remove('a') # 删除元素 'a' 5print(s) 6set(['c', 'b', 'd']) 7s.remove('e') # 删除不存在的元素,会抛出 KeyError

1s = {'a', 'b', 'c', 'a', 'd', 'b'} 2print(s) 3set(['a', 'c', 'b', 'd']) 4s.remove('a') # 删除元素 'a' 5print(s) 6set(['c', 'b', 'd']) 7s.discard('e') # 删除不存在的元素, 不会抛出 KeyError

三、交集/并集/差集

Python 中的集合也可以看成是数学意义上的无序和无重复元素的集合,因此,我们可以对两个集合作交集、并集等。

看看例子:

1s1 = {1, 2, 3, 4, 5, 6} 2s2 = {3, 6, 9, 10, 12} 3s3 = {2, 3, 4} 4print(s1 & s2 ) # 交集 5set([3, 6]) 6print(s1 | s2) # 并集 7set([1, 2, 3, 4, 5, 6, 9, 10, 12]) 8print(s1 - s2) # 差集 9set([1, 2, 4, 5]) 10print(s3.issubset(s1)) # s3 是否是 s1 的子集 11 12print(s3.issubset(s2)) # s3 是否是 s2 的子集 13 14print(s1.issuperset(s3)) # s1 是否是 s3 的超集 15 16print(s1.issuperset(s2)) # s1 是否是 s2 的超集

四、总结

本文主要介绍了Python的另外一种形式(集合),通过讲解集合中如何去创建集合,遍历集合,解释了两种常见的集合操作,添加元素和删除元素。最后通过一个小项目,介绍了集合之间中的三种关系。希望能够帮助大家更好的学习。

想学习更多Python网络爬虫与数据挖掘知识,可前往专业网站:http://pdcfighting.com/

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

java 11 不可修改集合API

不可修改集合API自Java9开始,Jdk里面为集合(List/Set/Map)都添加了of和copyOf方法,它们两个都用来创建不可变的集合,来看下它们的使用和区别。示例1:varlistList.of("Java","Python","C");varcopyList.copy

简述Python中常见的数据结构

「数仓宝贝库」,带你学数据!导读:Python中常见的数据结构有列表(list)、元组(tuple)、集合(set)、字典(dict)等,这些数据结构表示了自身在Python中的存在形式,在Python中可以输入type(对象)查看数据类型。1列表(1)创建列表列表是Python内置的一种数据类型,它是一种有序的数据集合,是用于存储一连串

Python中的list详解

Python中内置的一种数据类型list,列表。list是一个有序集合,所谓有序集合就是可以通过Key或者Index进行访问(无序集合,集合的元素只能遍历,比如set)。list能随时随地进行增加和删除。python中list用\\进行表示。例如:\\\friends\'fanbinbin','libinbin','xijin