目录

​1 概述​

​2 集合基本操作 ​

​2.1 创建集合​

​2.2 遍历集合  ​

​2.3 添加元素 ​

​2.4 删除元素  ​

​2.5 交集/并集/差集  ​


1 概述

在前面,我们已经对Python学习做了系统的知识梳理( ​​Python思维导图​​)。

这一节我们分享集合。在高中时候,我们就接触了集合,我们今天要用到集合中一个很重要的性质:集合内部元素互异。 

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


Python数据类型——集合_删除元素

2 集合基本操作 

2.1 创建集合

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



1. >>> s1 = { 'a' , 'b' , 'c' , 'a' , 'd' , 'b' } # 使用 {}

2. >>> {'a', 'c', 'd', 'b'}

3. set ([ 'a' , 'c' , 'b' , 'd' ])

4. >>>

5. >>> s2 = set ( 'helloworld' ) # 使用 set() ,接收一个字符串

6. >>>{'a', 'c', 'd', 'b'}

7. set ([ 'e' , 'd' , 'h' , 'l' , 'o' , 'r' , 'w' ])

8. >>>

9.

>>> s3 = set ([ '.mp3' , '.mp4' , '.rmvb' , '.mkv' , '.mp3' ]) # 使用 set() ,接收一个列表

10. >>> {'.mkv', '.mp3', '.mp4', '.rmvb'}

11. set ([ '.mp3' , '.mkv' , '.rmvb' , '.mp4' ])



2.2 遍历集合

1. >>> s = { 'a' , 'b' , 'c' , 'a' , 'd' , 'b' }

2. >>> for e in s :

3. ... print e

4. ...

5. a

6. c

7. b

8. d


2.3 添加元素

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



1. >>> s = { 'a' , 'b' , 'c' , 'a' , 'd' , 'b' }

2. >>> s

3. set ([ 'a' , 'c' , 'b' , 'd' ])

4. >>> s . add ( 'e' )

5. >>> s

6. set ([ 'a' , 'c' , 'b' , 'e' , 'd' ])

7. >>> s . add ( 'a' )

8. >>> s

9. set ([ 'a' , 'c' , 'b' , 'e' , 'd' ])

10. >>> s . add ( 4 )

11. >>> s

12. set ([ 'a' , 'c' , 'b' , 4 , 'd' , 'e' ])



2.4 删除元素

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

discard() 。


1. >>> s = { 'a' , 'b' , 'c' , 'a' , 'd' , 'b' }

2. >>> s

3. set ([ 'a' , 'c' , 'b' , 'd' ])

4. >>> s . remove ( 'a' ) # 删除元素 'a'

5. >>> s

6. set ([ 'c' , 'b' , 'd' ])

7. >>> s . remove ( 'e' ) # 删除不存在的元素,会抛出 KeyError

8. Traceback ( most recent call last ):

9. File "<stdin>" , line 1 , in < module >

10. KeyError : 'e'

11. >>> s . discard ( 'e' ) # 删除不存在的元素 , 不会抛出 KeyError



2.5 交集/并集/差集

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



1. >>> s1 = { 1 , 2 , 3 , 4 , 5 , 6 }

2. >>> s2 = { 3 , 6 , 9 , 10 , 12 }

3. >>> s3 = { 2 , 3 , 4 }

4. >>> s1 & s2 # 交集

5. set ([ 3 , 6 ])

6. >>> s1 | s2 # 并集

7. set ([ 1 , 2 , 3 , 4 , 5 , 6 , 9 , 10 , 12 ])

8. >>> s1 - s2 # 差集

9. set ([ 1 , 2 , 4 , 5 ])

10. >>> s3 . issubset ( s1 ) # s3 是否是 s1 的子集

11. True

12. >>> s3 . issubset ( s2 ) # s3 是否是 s2 的子集

13. False

14. >>> s1 . issuperset ( s3 ) # s1 是否是 s3 的超集

15. True

16. >>> s1 . issuperset ( s2 ) # s1 是否是 s2 的超集

17. False