tft每日頭條

 > 圖文

 > python集合思路

python集合思路

圖文 更新时间:2024-10-07 22:23:12
大家好,我是IT共享者,人稱皮皮。今天給大家來捋一捋Python集合。一、什麼是集合?

集合(set)和字典(dict)類似,它是一組 key 的集合,但不存儲 value。集合的特性就是:key 不能重複。

二、集合常用操作1. 創建集合

set 的創建可以使用 {} 也可以使用 set 函數:

s1 = {'a', 'b', 'c', 'a', 'd', 'b'} # 使用 {} print(s1) (['a', 'c', 'b', 'd']) s2 = set('helloworld') # 使用 set(),接收一個字符串 print(s2) set(['e', 'd', 'h', 'l', 'o', 'r', 'w']) s3 = set(['.mp3', '.mp4', '.rmvb', '.mkv', '.mp3']) # 使用 set(),接收一個列表 print(s3) set(['.mp3', '.mkv', '.rmvb', '.mp4'])

python集合思路(說說Python集合的那些事兒)1

2. 遍曆集合

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

python集合思路(說說Python集合的那些事兒)2

3. 添加元素

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

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'])

python集合思路(說說Python集合的那些事兒)3

4. 删除元素

remove() 方法可以删除集合中的元素, 但是删除不存在的元素,會抛出 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') # 删除不存在的元素,會抛出 KeyError

python集合思路(說說Python集合的那些事兒)4

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') # 删除不存在的元素, 不會抛出 KeyError

python集合思路(說說Python集合的那些事兒)5

三、交集/并集/差集

Python 中的集合也可以看成是數學意義上的無序和無重複元素的集合,因此,我們可以對兩個集合作交集、并集等。

看看例子:

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 的超集

python集合思路(說說Python集合的那些事兒)6

四、總結

本文主要介紹了Python的另外一種形式(集合),通過講解集合中如何去創建集合,遍曆集合,解釋了兩種常見的集合操作,添加元素和删除元素。最後通過一個小項目,介紹了集合之間中的三種關系。希望能夠幫助大家更好的學習。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved