Python基礎(5)——集合的定義和操作
阿新 • • 發佈:2019-01-05
集合是Python的基本資料型別,在下面這篇文章中,我將簡單介紹一下集合的定義和常見的操作。
1. 集合的定義
- 集合是無序的,所以不支援下標索引來查詢元素。
- 在python中,集合和字典一樣,都使用大括號,而且集合中的每個元素都是唯一的。
- 集合的建立很簡單,只需要在大括號中新增元素,並使用逗號隔開即可。
- 集合是一種可變的資料型別。
- 集合的格式:集合名 = {元素1,元素2,元素3...}
如下例項:my_set = {1, 2, 3, 3, 3, 2}實際等價於 my_set = {1, 2, 3}
my_set = {1, 2, 3, 3, 3, 2} print(my_set) 結果如下: {1, 2, 3}
定義一個空的集合: my_set = set()
注意: my_set = {} 表示定義一個空字典,而不是集合
my_set = {}
print(type(my_set))
my_set=set()
print(type(my_set))
結果如下:
<class 'dict'>
<class 'set'>
2. 集合的常見操作
2.1 > 向集合中新增元素(add, update):
- add函式是將新增的元素作為一個元素處理
- update是將新增的元素拆分,做為個體傳入到集合中
my_set = set()
#add函式是將新增的元素作為一個元素處理
my_set.add("abcd123")
print(my_set)
my_set = set()
#update是將新增的元素拆分,做為個體傳入到集合中
my_set.update("abcd123")
print(my_set)
結果如下:
{'abcd123'}
{'b', 'c', '1', '3', 'd', '2', 'a'}
2.2 > 刪除集合中的元素(remove,pop,discard):
remove ():刪除集合中的具體的值,如果集合中沒有這個值,則會報錯
my_set={"name","age",12,3.14,True}
#刪除集合中的具體的值
my_set.remove(12)
print(my_set)
#如果集合中沒有這個值,則會報錯
my_set.remove(111)
print(my_set)
結果如下:
{True, 3.14, 'age', 'name'}
Traceback (most recent call last):
File "D:/python_code/St11/test/liebiao.py", line 6, in <module>
my_set.remove(111)
KeyError: 111
pop() : 隨機刪除集合中的某個元素, 如果集合為空,則程式報錯
my_set={"name","age",12,3.14,True,111}
#隨機刪除集合中的某個元素
my_set.pop()
print(my_set)
my_set1=set()
#如果集合為空,則會報錯
my_set1.pop()
print(my_set1)
結果如下:
{3.14, 'name', 12, 111, 'age'}
Traceback (most recent call last):
File "D:/python_code/St11/test/liebiao.py", line 7, in <module>
my_set1.pop()
KeyError: 'pop from an empty set'
discard (): 如果元素存在,直接刪除。 如果元素不存在,程式不會報錯,不做任何操作
my_set={"name","age",12,3.14,True}
#刪除集合中的具體的值
my_set.discard(12)
print(my_set)
my_set={"name","age",12,3.14,True}
#如果集合中沒有這個值,則不做任何操作
my_set.discard(111)
print(my_set)
結果如下:
{True, 3.14, 'age', 'name'}
{True, 3.14, 'age', 12, 'name'}
3. 集合的其他操作
- 集合的交集(&)
- 集合的並集(|)
- 集合的差集(-):在"—"前的集合,而不在"—"後的集合
- 集合的對稱差集(^):非兩者公有的部分
my_set1={"name","age",12,3.14,True,666}
my_set2={"name","age",12,3.14,True,111,222}
#集合的交集
my_set=my_set1&my_set2
print(my_set)
#集合的並集
my_set=my_set1|my_set2
print(my_set)
#集合的差集,在第一個集合中,不在第二個集合中
my_set=my_set1-my_set2
print(my_set)
#集合的差集,在第二個集合中,不在第一個集合中
my_set=my_set2-my_set1
print(my_set)
#集合的對稱差集,不是兩個集合公有的部分
my_set=my_set1^my_set2
print(my_set)
結果如下:
{True, 'name', 3.14, 12, 'age'}
{True, 'name', 3.14, 12, 111, 666, 'age', 222}
{666}
{222, 111}
{666, 222, 111}