set常用方法
# 1) + * 無法使用
list01 = [1, 2, 3]
print(list01 + [4, 5, 6])
print(list01 * 3)
set01 = {11, 22, 33}
set02 = {44, 55, 66}
# print(set01 + set02)
# print(set01 * 3)
print(set01)
print(set02)
# 2) = 賦值
set01 = {11, 22, 33}
set02 = set01
print(set01)
print(set02)
# 3) len 返回元素的長度
set01 = {11, 22, 33}
print(len(set01))
# 4) in 判斷是否包含元素
set01 = {11, 22, 33}
print("是否包含22:", (22 in set01))
# 5) 排序和反轉,sort和reverse不支持,僅僅支持sorted
set01 = {11, 0, 22, -22, 99, 109, 33}
print(sorted(set01))
# 6) 添加元素:add
set01 = {11, 22, 33}
print(set01)
set01.add(44)
set01.add(55) # 按照哈希值順序進行添加
print(set01)
執行結果:
C:\python\python.exe C:/python/demo/file3.py
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 1, 2, 3, 1, 2, 3]
{33, 11, 22}
{66, 44, 55}
{33, 11, 22}
{33, 11, 22}
3
是否包含22: True
[-22, 0, 11, 22, 33, 99, 109]
{33, 11, 22}
{33, 11, 44, 22, 55}
Process finished with exit code 0
二、刪除元素
在set中刪除元素的方法有:remove、pop、discard
1)remove刪除指定的元素,但當指定元素不存在時,報錯:KeyError。
例如:
print("刪除11前:", set01)
set01.remove(
print("刪除11後:", set01)
set02.remove(122)
print("刪除一個不存在的122:", set02)
執行結果:
C:\python\python.exe C:/python/demo/file3.py
[1, 2, 3, 4, 5, 6]
Traceback (most recent call last):
[1, 2, 3, 1, 2, 3, 1, 2, 3]
{33, 11, 22}
File "C:/python/demo/file3.py", line 51, in <module>
{66, 44, 55}
set01.remove(122)
{33, 11, 22}
KeyError: 122
{33, 11, 22}
2)pop刪除按照hash值存儲的第一個元素,並可將移除的元素賦值給一個變量,不能指定元素移除
例如:
print("刪除前:", set01)
num01 = set01.pop()
print("刪除後:", set01)
# 總結:pop在刪除的時候,不允許加參數,他刪除是按照hash值存儲的第一個元素
set02 = {77, 44, 22, 99}
print(set02)
set02.pop()
print(set02)
執行結果:
C:\python\python.exe C:/python/demo/file3.py
刪除前: {0, 33, 99, -22, 108}
刪除後: {33, 99, -22, 108}
{99, 44, 77, 22}
{44, 77, 22}
Process finished with exit code 0
3)discard刪除指定元素,但當指定元素不存在時,不報錯。
例如:
set01 = {11, 0, 22, -22, 99, 108, 33}
set02 = set01
print("刪除22前:", set01)
set01.discard(22)
print("刪除22後:", set01)
set02.discard(122)
print("刪除一個不存在的122:", set02)
執行結果:
C:\python\python.exe C:/python/demo/file3.py
刪除22前: {0, 33, 99, -22, 11, 108, 22}
刪除22後: {0, 33, 99, -22, 11, 108}
刪除一個不存在的122: {0, 33, 99, -22, 11, 108}
Process finished with exit code 0
三、計算:max,min,sum數值元素
set01={11,0,22,-22,99,108,33}
print(min(set01))
print(max(set01))
print(sum(set01))
四、set的邏輯運算
例如:
set01 = {11, 22, 33, 44, 55}
set02 = {44, 55, 66, 77, 88}
# 交集 (兩種)
print(set01 & set02)
print(set01.intersection(set02))
# 並集(兩種)
print(set01 | set02)
print(set01.union(set02))
# 差集(兩種)
print(set01 - set02)
print(set01.difference(set02))
# 對等差集(兩種)
print(set01 ^ set02)
print(set01.symmetric_difference(set02))
# 判斷是否是子集 (set02是否是set01的子集)
print(set01 >= set02)
print(set02.issubset(set01))
# 判斷是否是父集 (set01是否是set02的父集)
print(set01 <= set02)
print(set02.issuperset(set01))
執行結果:
C:\python\python.exe C:/python/demo/file3.py
{44, 55}
{44, 55}
{33, 66, 11, 44, 77, 22, 55, 88}
{33, 66, 11, 44, 77, 22, 55, 88}
{33, 11, 22}
{33, 11, 22}
{33, 66, 22, 88, 11, 77}
{33, 66, 22, 88, 11, 77}
False
False
False
False
Process finished with exit code 0
五、類型轉換:set->list, set->tuple,set->str
例如:
set01 = {11, 0, 22, -22, 99, 108, 33}
list01 = list(set01)
print(type(list01))
tuple01 = tuple(set01)
print(type(tuple01))
str01 = str(set01)
print(type(str01))
print(list01)
print(tuple01)
print(str01)
執行結果:
C:\python\python.exe C:/python/demo/file3.py
<class 'list'>
<class 'tuple'>
<class 'str'>
[0, 33, 99, -22, 11, 108, 22]
(0, 33, 99, -22, 11, 108, 22)
{0, 33, 99, -22, 11, 108, 22}
Process finished with exit code 0
set常用方法