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) 排序和反轉,sortreverse不支持,僅僅支持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

 

1remove刪除指定的元素,但當指定元素不存在時,報錯:KeyError

例如:

print("刪除11前:", set01)

set01.remove(11)

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}

 

 

2pop刪除按照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

 

 

3discard刪除指定元素,但當指定元素不存在時,不報錯。

例如:

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的邏輯運算

set常用方法.png

例如:

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章