Python3中的集合(Set)
阿新 • • 發佈:2020-07-16
【1】集合 set 的基本運算
集合中的元素是不重複的
集合是有預設展現方式,但實際上是無序的
【1.1】把其他型別轉換成集合 set(object)
list_1 = [1,4,5,7,3,6,7,9]
set_1=set(list_1)
print(set_1,type(set_1))
a = set('abracadabra')
print(a)
{1, 3, 4, 5, 6, 7, 9} <class 'set'>
{'c', 'd', 'b', 'a', 'r'}
【1.2】集合的交集(&)、並集(|)、差集(-)、對稱差集(^)
list_1={1,3,5,7,9} list_2={2,4,5,8,10} print('----------- 使用方法操作 ---------------') #交集 print(list_1.intersection(list_2)) #並集 print(list_1.union(list_2)) #差集 print(list_1.difference(list_2)) #對稱差集,去掉了交集部分 print(list_1.symmetric_difference(list_2)) print('----------- 使用運算子操作 ---------------') #交集 print(list_1 & list_2) #並集 print(list_1 | list_2) #差集 print(list_1 - list_2) #對稱差集 print(list_1 ^ list_2) print('----------- 子集交集等判斷 ---------------') #子集的判斷,是子集則為 True print(list_1.issubset(list_2)) #父集的判斷,是父集則為 True print(list_1.issubset(list_2)) #交集的判斷,如果沒有交集則為True print(list_1.isdisjoint(list_2))
----------- 使用方法操作 ---------------
{5}
{1, 2, 3, 4, 5, 7, 8, 9, 10}
{1, 3, 9, 7}
{1, 2, 3, 4, 7, 8, 9, 10}
----------- 使用運算子操作 ---------------
{5}
{1, 2, 3, 4, 5, 7, 8, 9, 10}
{1, 3, 9, 7}
{1, 2, 3, 4, 7, 8, 9, 10}
----------- 子集交集等判斷 ---------------
False
False
False
【1.3】集合的增(add,update)刪(remove,pop,discard)
list1={1,2,3,4,5} #新增一項 list1.add(999) print(list1) #新增多項 list1.update([111,222,333]) print(list1) #刪除 remove 刪不存在則報錯 list1.remove(999) print(list1) #pop按照預設排列順序從最前面刪 list1.pop() list1.pop() list1.pop() print(list1) list1.pop() list1.pop() list1.pop() print(list1) #discard 刪除,刪除不存在元素不會報錯 list1.discard(111) print(list1)
{1, 2, 3, 4, 5, 999}
{1, 2, 3, 4, 5, 999, 333, 111, 222}
{1, 2, 3, 4, 5, 333, 111, 222}
{4, 5, 333, 111, 222}
{111, 222}
{222}
【1.4】元素是否在集合中
list1={1,2,3,4,5}
#判斷某個元素是否在集合中
print(1 in list1)
print(5 not in list1)
True
False