說說Python集合的那些事兒
大家好,我是IT共享者,人稱皮皮。今天給大家來捋一捋Python集合。
一、什么是集合?
集合(set)和字典(dict)類似,它是一組 key 的集合,但不存儲(chǔ) value。集合的特性就是:key 不能重復(fù)。
二、集合常用操作
1. 創(chuàng)建集合
set 的創(chuàng)建可以使用 {} 也可以使用 set 函數(shù):
- s1 = {'a', 'b', 'c', 'a', 'd', 'b'} # 使用 {}
- print(s1)
- (['a', 'c', 'b', 'd'])
- s2 = set('helloworld') # 使用 set(),接收一個(gè)字符串
- print(s2)
- set(['e', 'd', 'h', 'l', 'o', 'r', 'w'])
- s3 = set(['.mp3', '.mp4', '.rmvb', '.mkv', '.mp3']) # 使用 set(),接收一個(gè)列表
- print(s3)
- set(['.mp3', '.mkv', '.rmvb', '.mp4'])
2. 遍歷集合
- s = {'a', 'b', 'c', 'a', 'd', 'b'}
- for e in s:
- print(e)
3. 添加元素
add() 方法可以將元素添加到 set 中,可以重復(fù)添加,但沒有效果。
- s = {'a', 'b', 'c', 'a', 'd', 'b'}
- print(s)
- set(['a', 'c', 'b', 'd'])
- s.add('e')
- print(s)
- set(['a', 'c', 'b', 'e', 'd'])
- s.add('a')
- print(s)
- set(['a', 'c', 'b', 'e', 'd'])
- s.add(4)
- print(s)
- set(['a', 'c', 'b', 4, 'd', 'e'])
4. 刪除元素
remove() 方法可以刪除集合中的元素, 但是刪除不存在的元素,會(huì)拋出 KeyError,可改用 discard()。
例子:
- s = {'a', 'b', 'c', 'a', 'd', 'b'}
- print(s)
- set(['a', 'c', 'b', 'd'])
- s.remove('a') # 刪除元素 'a'
- print(s)
- set(['c', 'b', 'd'])
- s.remove('e') # 刪除不存在的元素,會(huì)拋出 KeyError
- s = {'a', 'b', 'c', 'a', 'd', 'b'}
- print(s)
- set(['a', 'c', 'b', 'd'])
- s.remove('a') # 刪除元素 'a'
- print(s)
- set(['c', 'b', 'd'])
- s.discard('e') # 刪除不存在的元素, 不會(huì)拋出 KeyError
三、交集/并集/差集
Python 中的集合也可以看成是數(shù)學(xué)意義上的無序和無重復(fù)元素的集合,因此,我們可以對(duì)兩個(gè)集合作交集、并集等。
看看例子:
- s1 = {1, 2, 3, 4, 5, 6}
- s2 = {3, 6, 9, 10, 12}
- s3 = {2, 3, 4}
- print(s1 & s2 ) # 交集
- set([3, 6])
- print(s1 | s2) # 并集
- set([1, 2, 3, 4, 5, 6, 9, 10, 12])
- print(s1 - s2) # 差集
- set([1, 2, 4, 5])
- print(s3.issubset(s1)) # s3 是否是 s1 的子集
- print(s3.issubset(s2)) # s3 是否是 s2 的子集
- print(s1.issuperset(s3)) # s1 是否是 s3 的超集
- print(s1.issuperset(s2)) # s1 是否是 s2 的超集
四、總結(jié)
本文主要介紹了Python的另外一種形式(集合),通過講解集合中如何去創(chuàng)建集合,遍歷集合,解釋了兩種常見的集合操作,添加元素和刪除元素。最后通過一個(gè)小項(xiàng)目,介紹了集合之間中的三種關(guān)系。希望能夠幫助大家更好的學(xué)習(xí)。