1. 程式人生 > 實用技巧 >Python3中的集合(Set)

Python3中的集合(Set)

【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