集合(set)是一個無序的不重覆元素序列。 可以使用大括弧 { } 或者 set() 函數創建集合,註意:創建一個空集合必須用 set() 而不是 { },因為 { } 是用來創建一個空字典。 創建格式:list_1 = {value01,value02,...} 或者 set(value) 集合作 ...
集合(set)是一個無序的不重覆元素序列。
可以使用大括弧 { } 或者 set() 函數創建集合,註意:創建一個空集合必須用 set() 而不是 { },因為 { } 是用來創建一個空字典。
創建格式:list_1 = {value01,value02,...} 或者 set(value)
集合作用:集合能實現列表的去重功能,如下
1 list_1 = [1,4,5,7,3,6,7,9] 2 list_1 = set(list_1) 3 4 print(list_1) 5 list_2 =set([2,6,0,66,22,8,4]) 6 print(list_1,list_2)
集合運算:
1 list_1 = [1,4,5,7,3,6,7,9] 2 list_1 = set(list_1) 3 list_2 =set([2,6,0,66,22,8,4]) 4 5 #交集 6 print(list_1.intersection(list_2)) 7 print(list_1 & list_2) 8 9 #並集 10 print(list_1.union(list_2)) 11 print(list_2 | list_1) 12 13 #差集 in list_1 but not in list_2 14 print(list_1.difference(list_2)) 15 print(list_2.difference(list_1)) 16 print(list_1 - list_2) # in list 1 but not in list 2 17 18 #子集 19 list_3 = set([1,3,7,8]) 20 print(list_3.issubset(list_1)) #list_3為list_1的子集,即list_1包含list_3,是的話返回True,否則返回False 21 print(list_1.issuperset(list_3)) #list_1為list_3的父集,即list_1包含list_3,是的話返回True,否則返回False 22 23 24 #對稱差集 25 print(list_1.symmetric_difference(list_2)) #兩個集合合併去掉交集的部分 26 print(list_1 ^ list_2)
集合增刪改查:
1 list_1 = {1, 2, 3} 2 3 #向集合加元素 4 list_1.add(999) 5 #向集合一次性加多個元素 6 list_1.update([888,777,555]) 7 print(list_1) 8 9 #隨機彈出集合中的一個元素並返回 10 list_1.pop() 11 print(list_1) 12 #刪除集合中的特定元素,如果集合中有,則刪除,如果沒有,返回keyerror 13 list_1.remove(888) 14 print(list_1) 15 #刪除集合中的特定元素,如果集合中有,則刪除,如果沒有,不做任何操作 16 list_1.discard(99) 17 print(list_1) 18 19 #集合不支持索引取值,如果根據索引取值,則需將集合轉為列表 20 list1 = {1,2,3,5,4,6,7} 21 list1_list = list(list1) 22 print(list1_list[0])
# 註意:集合的遍歷不可以用range(len(set_name)),因為集合是無序的,不可以根據索引取值。