python集合補運算 Python集合及其運算

2021-10-16 19:35:13 字數 4213 閱讀 5009

集合(set)

集合是由不同可hash的值組成的,裡面所有的值都是唯一的,也是無序的

集合的建立

>>>set_test =

## 把值放入中

>>>lis = ("name", "age", "hometown")

>>>set_test = set(lis)

>>> set_test

##利用set()函式,把其他型別轉換為set

>>> list_test = ["name", "age", "hometown"]

>>> set_test = frozenset(list_test)

>>> set_test

frozenset()

##利用frozenset()函式可以創造乙個set,並把它放到元組裡面

集合的操作

add(self, *args, **kwargs)

新增值到集合裡面

>>> set_test

>>> set_test.add("hobby")

>>> set_test

clear(self, *args, **kwargs)

清空集合

copy(self, *args, **kwargs)

淺拷貝discard(self, *args, **kwargs)

刪除某值,沒有時不會報錯

>>> set_test

>>> set_test.discard("hobby")

>>> set_test

pop(self, *args, **kwargs)

當集合是由列表和元組組成時,set.pop()是從左邊刪除元素的,並且可以得到被刪除的值

>>> set_test

>>> set_test.pop()

'name'

>>> set_test.pop()

'age'

remove(self, *args, **kwargs)

刪除某值,但是如果沒有的話,就會報錯

>>> set_test =

>>> set_test.remove("hometown")

>>> set_test

update(self, *args, **kwargs)

更新值,可以在set裡面新增多個值

>>> set_test =

>>> set_test.update(["jewish", "obanma", "anna"])

>>> print(set_test)

集合的運算

求交集》 set_test1 =

>>> set_test2 =

>>> test_result = set_test1.intersection(set_test2)

>>> print(test_result)

>>> test_result = set_test1&set_test2

>>> print(test_result)

求並集》 set_test1 =

>>> set_test2 =

>>> test_result = set_test1.union(set_test2)

>>> print(test_result)

>>> test_result = set_test1|set_test2

>>> print(test_result)

求差集》 set_test1 =

>>> set_test2 =

>>> test_result = set_test1.difference(set_test2)

>>> test_result1 = set_test1.difference(set_test2)

>>> print(test_result1)

>>> test_result1 = set_test1-set_test2

>>> print(test_result1)

>>> test_result2 = set_test2.difference(set_test1)

>>> print(test_result2)

>>> test_result2 = set_test2-set_test1

>>> print(test_result2)

求交叉補集

>>> set_test1 =

>>> set_test2 =

>>> test_result = set_test1.symmetric_difference(set_test2)

>>> print(test_result)

>>> test_result = set_test1^set_test2

>>> print(test_result)

求集賦值

symmetric_difference_update(self, *args, **kwargs)

>>> set_test1 =

>>> set_test2 =

>>> set_test1.symmetric_update(set_test2)

>>> set_test1.symmetric_difference_update(set_test2) ## 把得到值賦予set_test1

>>> set_test1, set_test2

(, )

>>> set_test1 ^= set_test2

>>> set_test1

intersection_update(self, *args, **kwargs)

>>> set_test1 =

>>> set_test2 =

>>> set_test1.intersection_update(set_test2) ##把得到的值賦予set_test1

>>> set_test1, set_test2

(, )

>>> set_test1 &= set_test2

>>> set_test1

difference_update(self, *args, **kwargs)

>>> set_test1 =

>>> set_test2 =

>>> set_test1.difference_update(set_test2)

>>> set_test1, set_test2

(, )

>>> set_test1 =

>>> set_test2 =

>>> set_test1 -= set_test2

>>> set_test1

set_test1 |= set_test2

>>> set_test1 =

>>> set_test2 =

>>> set_test1 |= set_test2

>>> set_test1

子集與父集

issubset(self, *args, **kwargs)

a.issubset(b) a是b的子集嗎? 返回bool

>>> set_test2 =

>>> set_test1 =

>>> set_test2.issubset(set_test1)

false

>>> set_test1.issubset(set_test2)

true

issuperset(self, *args, **kwargs)

a.issuperset(b) a是b的父集嗎? 返回bool

>>> set_test2 =

>>> set_test1 =

>>> set_test1.issuperset(set_test2)

false

>>> set_test2.issuperset(set_test1)

true

isdisjoint(self, *args, **kwargs)

返回true如果兩個set沒有交集

>>> set_test1 =

>>> set_test2 =

>>> set_test1.isdisjoint(set_test2)

true

>>> set_test1 =

>>> set_test2 = {"jack", "mark"

>>> set_test1 < set_test2

false

>>> set_test1 > set_test2

true

python集合運算案例

python生成不重複隨機數放在列表中的效率比較 import random import time def randomnumbers number,start,end 使用列表來生成number個介於start和end之間的不重複隨機數 data n 0 while true element r...

Python集合及其運算

一 集合 set 集合是由不同可hash的值組成的,裡面所有的值都是唯一的,也是無序的 集合的建立 set test 把值放入中 lis name age hometown set test set lis set test 利用set 函式,把其他型別轉換為set list test name a...

python 集合的運算

s s2 交集運算 result s s2 並集運算 result s s2 差集 result s s2 異或集 獲取只在乙個集合 現的元素 result s s2 檢查乙個集合是否是另乙個集合的子集 如果a集合中的元素全部都在b集合 現,那麼a集合就是b集合的子集,b集合是a集合超集 a b r...