集合(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...