集合的操作

2022-08-18 20:24:12 字數 3026 閱讀 8775

# 集合操作

# 集合是乙個無序的,不重複的資料組合,它的主要作用如下:

# 去重,把乙個列表變成集合,就自動去重了

# 關係測試,測試兩組資料之前的交集、差集、並集等關係

def nl():

print('='.ljust(30, '='))

list1 = [1, 2, 3, 4, 5, 6, 7, 8]

list2 = [3, 4, 5, 6, 8, 0, 11, 23, 55]

listnew =

'''# for i in list1:

# listnew = list1.copy()

# print(listnew)

# for i in list2:

# if i not in listnew:

# print(listnew)

''''''

list3 = list1 + list2

print(list3)

list4 = set(list3)

listnew = list(list4)

print(listnew)

''''''

for i in list1:

if i in list2:

print(i)

'''list_1 = [1, 4, 5, 7, 3, 6, 7, 9]

print(type(list_1))

list_1 = set(list_1)

list_2 = set([2, 6, 0, 66, 22, 8, 4])

print(list_1, list_2)

'''關係測試:

----------------------------------------

'''#交集 (1和2 都有)

print('交集',list_1.intersection(list_2))

#並集 (1和2 加起來)

print('並集',list_1.union(list_2))

#差集 (只存在1不存在2)

print(list_1.difference(list_2))

#子集 (1是2 的子集嗎?) false

print(list_1.issubset(list_2))

#父集 1是2 的父集嗎 false

print(list_1.issuperset(list_2))

#對稱差集 對稱差集(項在t或s中,但不會同時出現在二者中)

# 1 中獨有和 2中獨有的放在一起

# 其實就是並集中去掉交集的

print(list_1.symmetric_difference(list_2))

#如果兩個集合的交集為空,則返回true

# 判斷兩個集合是否有交集 \

'''沒有返回true

有返回false

'''print(list_1.isdisjoint(list_2))

'''運算子方式

'''a = set([3, 4, 5, 'l'])

b = set('hello')

print(a | b) #並

print(a & b) #交

print(a - b) #差

print(a ^ b) #對稱差

nl()

# 基本操作

#增 單

list_1.add(999)

print(list_1)

#增 多

list_1.update([3, 77, 34])

print(list_1)

#刪除一項

list_1.remove(1)

print(list_1)

nl()

#長度print(len(list_1))

nl()

# 測試 x 是否是 s 的成員

x = 1

s = set([1, 2, 3])

result = x in list_1

print(result)

#******************************

'''# 測試 x 是否不是 s 的成員

x not in s

# 測試是否 s 中的每乙個元素都在 t 中

s <= t

# 測試是否 t 中的每乙個元素都在 s 中

s >= t

'''#******************************

'''s.union(t)

s | t

返回乙個新的 set 包含 s 和 t 中的每乙個元素

'''#******************************

'''s.intersection(t)

s & t

返回乙個新的 set 包含 s 和 t 中的公共元素

s.difference(t)

s - t

返回乙個新的 set 包含 s 中有但是 t 中沒有的元素

s.symmetric_difference(t)

s ^ t

返回乙個新的 set 包含 s 和 t 中不重複的元素

s.copy()

返回 set 「s」的乙個淺複製

'''#刪除任意乙個元素並返回

aa = set([1, 2, 3, 4, 5, 'a', 'b', 'c'])

ret = aa.pop()

print(ret)

print(aa)

#從集合中刪除元素(如果它是成員)。

# 如果元素不是成員,則什麼也不做。

print(aa.discard('a')) #存在 'a' 所以刪除了'a'

print(aa)

print(aa.discard(6)) # 6不存在所以返回none

nl()

集合的操作

list 1 2,3,5,6,2,7,9 list 2 6,4,7,7,3,2,8 list 1 set list 1 把列表轉換為集合 集合可以除去列表中相同的數 list 2 set list 2 list 1.intersection list 2 list 1 list 2 算出list 1...

集合的操作

集合是乙個無序的,不重複的資料組合,作用如下 1.去重,把乙個列表變成集合,就自動去重了 2.關係測試,測試兩組資料之前的交集 差集 並集等關係 建立集合 a 1,3,5,3 b set a b 交集intersection 或 a set 1,3,5,7 b set 3,9,11 a.inters...

集合的相關操作

include using namespace std typedef struct nodenode,linklist define size sizeof node define false 0 define true 1 初始化集合 void initlinklist linklist hea...