什麼是集合?
集合(set)是一種可變,無序和不重複的序列。集合是python的序列之一,集合沒有列表(list)、元組(tuple)和字典(ditc)常見。但是有時候也有奇效。
我們先來看個集合的例子:
>>> s =
>>> type(s)
#
s =
就是乙個集合(set),資料型別就是set。
我們可以仔細觀察一下集合(set)的形態:
可以簡單的理解為就是沒有值(value)的字典(dict)。接下來我們來看下集合的基本操作。當然這是我說的,不夠準確,被人罵了不要來找我!
集合的建立
我們看如何建立集合:
建立乙個空的集合;
空集合的建立不能用以下這種形式
>>> s = {} # 這是乙個空字典,不是空集合
>>> type(s)
#
那要如何建立乙個空的集合呢?
>>> s = set() # 這是乙個空字典,不是空集合
>>> s
# set()
>>> type(s)
#
我們可以看到要建立乙個空集合,要使用s = set()
這種方式。
建立非空的集合;
set()可以將任意一種序列變成集合
# 列表
>>> li = ['a', 'b', 'c']
>>> set(li)
# # 元組
>>> t = (1,2,3)
>>> set(t)
# # 字典
>>> d =
>>> set(d)
# # 字串
>>> set('python')
#
利用集合的不重複狀態,進行序列的去重
# 有重複元素的列表
>>> li = ['a', 'b', 'c', 'a', 'c']
>>> s = set(li)
# # 如果想去重後依然是列表,轉換一下
>>> li = list(set(li))
>>> li.sort()
>>> li
# ['a', 'b', 'c']
集合元素的新增、刪除
集合元素的新增有兩種常用方法,分別是add和update
>>> s =
>>> s.add('abc') #這裡會把'abc'當成乙個字串
>>> s
#
集合中的元素不能是列表(list)、字典(dict)
>>>s =
>>> s.add([1,2])
typeerror: unhashable type: 'list'
>>> s.add()
typeerror: unhashable type: 'dict'
update方法類似於列表相加,其中update的引數為序列。也就是把序列中的所有元素全部無序併排重後加入到集合中。
>>> s =
>>> s.update('xyz') #這裡會把'xyz'當成序列來處理,'x','y','z'分別是三個元素
>>> s
#
集合元素的刪除方法
集合刪除操作方法有兩種:s.remove('e'):刪除匹配的元素
s.pop():刪除第乙個元素,無法指定index,因為集合沒有index
# remove
>>> s =
>>> s.remove('a')
>>> s
# # pop
>>> s =
>>> s.pop()
# 'b'
>>> s
#
集合的交集、合集(並集)、差集
通過集合的交集、合集(並集)、差集可以很方便的處理一些列表(list)
交集:
交集,符號「&」,表示兩個集合中相同的元素部分組成新的集合
# 交集 &
>>> a = set(['a', 'b', 'c'])
>>> b = set(['b','d','e'])
>>> a & b
#
合集(並集)
合集(並集),符號「|」,表示兩個集合組合成乙個不重複的新集合(也就是重複部分會進行排重)
# 合集(並集) |
>>> a = set(['a', 'b', 'c'])
>>> b = set(['b','d','e'])
>>> a | b
#
差集、相對補集
差集、相對補集, 符號「-」,如果 a - b 表示a集合中沒有在b集合中存在的元素,反之 b - a 表示b集合中沒有在a集合中存在的元素。可以用於取兩個集合中不相同的元素。
# 合集(並集) |
>>> a = set(['a', 'b', 'c'])
>>> b = set(['b','d','e'])
>>> a - b
# >>> b - a
#
其他
除開上面集中集合外,還有類似與列表(list)中的一些操作,如in,not in,!=,==等
# 不等於 !=
>>> a != b
# true
# 等於 ==
>>> a == b
# false
# 包含 in
>>> a in b
# false
# 不包含 not in
>>> a not in b
# true
通過集合,我們可以方便快速的處理各種序列中的一些特殊操作。
排重,如果序列中存在重合的元素,可以通過集合方便的去重;
取兩個序列中相同的元素,通過將序列轉換為集合後,取交集即可;
將兩個序列合併,並且元素不重複,通過合集即可;
取兩個序列中不相同的部分,用差集即可。
本節練習:將列表 [5, 6, 7, 4, 5, 7] 中重複的元素去掉
求列表[2, 3, 5, 7, 9]和[2, 4, 5, 9, 8] 中的相同元素和不同元素
Python極簡教程之三 集合之列表(list)
語法 arr arr a b c 二維陣列 a 1,2,1,2,3 多維陣列 arr i for i in range 10 1,注意,i for in xx 這個必須放在第乙個位置,否則要先定義 i i 0 j 0 arr i for i in range 5 j for j in range 5...
Python 極簡教程(十一)集合 set
集合 set 是一種可變,無序和不重複的序列。集合是python的序列之一,集合沒有列表 list 元組 tuple 和字典 ditc 常見。但是有時候也有奇效。我們先來看個集合的例子 s type s s 就是乙個集合 set 資料型別就是set。我們可以仔細觀察一下集合 set 的形態 可以簡單...
python3集合 Python3 集合
集合 set 是乙個無序的不重複元素序列。可以使用大括號 或者 set 函式建立集合,注意 建立乙個空集合必須用 set 而不是 因為 是用來建立乙個空字典。建立格式 parame 或者set value 這裡演示的是去重功能 orange in basket 快速判斷元素是否在集合內 true c...