列表的交並補差運算

2021-10-10 15:58:09 字數 2264 閱讀 1692

題目要求:實現兩個列表的交並補差運算

參考高中集合知識可知:

(均以a,b集合為例)

集合特點:無序,互異,確定

交集:兩個集合的公共元素組成的集合 記作:a∩b

並集:包含兩個集合的所有元素的集合 記作:a∪b

補集:a是b的乙個子集,由b中所有不屬於a的元素組成的集合,叫做子集a在b中的補集 記作:cba

差集:(a - b) a中不含b中所有元素的集合

思路:(list1,list2)

1列表交集(intersect):兩個列表中所有的公共元素所組成的列表,一一比對即可

2列表並集(union):先求出兩個列表的公共部分list3,然後再將list1,list2中不在list3中的元素加入list3

3補集(complementary):首先判斷是否能進行運算;然後在判斷誰求誰的補集

4差集(dif):dif = complementary ( list1,intersect( list1, list2 ) )

實現**:

# 寫出列表的交,補,並,差集

# 求兩個列表的交集 返回乙個列表

defintersect

(list1, list2)

: intersectlist =

for i in list1:

for j in list2:

if i == j:

break

intersectlist.sort(

)return intersectlist

# 求兩個列表的並集

defunion

(list1, list2)

: list_sect = intersect(list1, list2)

# 先求兩個列表的交集

list_union =

# 初始化乙個list_union

for num in list_sect:

# 將交集中所有元素放入list_union列表

for i in list1:

if i in list_sect:

continue

else

:for i in list2:

if i in list_sect:

continue

else

: list_union.sort(

)return list_union

# 求兩列表的補集

defcomplementary

(list1, list2)

: comple =

list_intect = intersect(list1, list2)

# 取交集

if list_intect != list1 and list_intect != list2:

# 交集不等於任何乙個集合

return

'不存在包含與被包含關係'

elif list_intect == list1:

# 交集等於list1

for num in list2:

if num in list_intect:

continue

else

:return comple

else

:return complementary(list2, list1)

# 求兩個集合的差集a - b = comple(a,intersect(a,b))

defdif

(list1, list2)

:return complementary(list1, intersect(list1, list2)

)listunion = union([1

,2,3

,4],

[2,3

,4,5

])listintersect = intersect([1

,2,3

,4],

[2,3

,4,5

])listcomple = complementary([1

,2,3

,4],

[1,2

,3,4

,5])

list_dif = dif([1

,2,3

,4,7

],[1

,2,3

,4,5

])print

(listunion, listintersect, listcomple, list_dif)

python列表的交 並 差集

list 的 sort 方法返回的是對已經存在的列表進行操作,而內建函式 sorted 方法返回的是乙個新的 list,而不是在原來的基礎上進行的操作 a.sort reverse true b sorted a,reverse false usr bin env python3 l1 1 2 3 ...

mysql交並補 集合交並補運算順序是什麼

我剛剛查完集合運算順序和邏輯運算順序,按照我的理解,順便來回答一下!我的提問 集合的交並補運算子沒有優先順序順序,運算順序完全由括號決定。邏輯與或非才有優先順序順序 邏輯非 邏輯與 邏輯或。以下內容來自維基百科 交換律a交b b交a a並b b並a 結合律 a交b 交 c a 交 b交c a並b 並...

SQLServer資料集合的交 並 差集運算

sqlserver2005通過intersect,union,except和三個關鍵字對應交 並 差三種集合運算。他們的對應關係可以參考下面圖示 求表並集12 345 select from t1union allselect from t2go 求表並集不過濾重複12 3345 select fr...