Python學習隨記-set

set

  • 概述:類似dict,是一組key的集合,不存儲value
  • 本質:無序和無重複元素的集合

創建

  • 創建set需要一個list或者tuple或者dict作爲輸入集合
  • 重複元素在set中自動被過濾
# list
s1 = set([1, 2, 3])
# tuple
s2 = set((5, 6, 7))
# dict
s3 = set({"mfq": 24, "zhx": 23})

print(s1)
print(type(s1))
print(s2)
print(type(s2))
print(s3)
print(type(s3))

s4 = set([1, 2, 3, 1, 2, 4])
print(s4)

'''結果爲:
{1, 2, 3}
<class 'set'>
{5, 6, 7}
<class 'set'>
{'zhx', 'mfq'}
<class 'set'>
{1, 2, 3, 4}
'''

添加

方式1:set.add()

s1 = set([1, 2, 3])
print(s1)

s1.add(4)
print(s1)

# 可以添加重複的,但是無效果
s1.add(3)
print(s1)

# 報錯,因爲set存儲的key,key是不可變的,而list是可變的,所以set不能添加list;同理dict也不可以被添加
# s1.add([5, 6, 7])

# 元組是不可變的,所以可以添加成功
s1.add((8, 9, 0))
print(s1)

'''結果爲:
{1, 2, 3}
{1, 2, 3, 4}
{1, 2, 3, 4}
{1, 2, 3, 4, (8, 9, 0)}
'''

方式2:set.update()

s1 = set([1, 2, 3])
print(s1)

# 插入整個list、tuple、字符串,打碎插入
s1.update([4, 5, 6])
print(s1)
s1.update((7, 8))
print(s1)
# 也展示出set的無序性
s1.update("you are a good man")
print(s1)
s1.update({"mfq": 23})
print(s1)

'''結果爲:
{1, 2, 3}
{1, 2, 3, 4, 5, 6}
{1, 2, 3, 4, 5, 6, 7, 8}
{1, 2, 3, 4, 5, 6, 7, 8, 'e', 'g', 'r', ' ', 'n', 'm', 'd', 'o', 'u', 'a', 'y'}
{1, 2, 3, 4, 5, 6, 7, 8, 'e', 'g', 'mfq', 'r', ' ', 'n', 'm', 'd', 'o', 'u', 'a', 'y'}
'''

刪除

s1 = set([1, 2, 3])
print(s1)

s1.remove(2)
print(s1)

'''結果爲:
{1, 2, 3}
{1, 3}
'''

遍歷

  • 注意:set是沒有索引的
s1 = set([1, 2, 3, 4, 5])

for i in s1:
    print(i)

# 僞索引
for index, data in enumerate(s1):
    print(index, data)

'''結果爲:
1
2
3
4
5
0 1
1 2
2 3
3 4
4 5
'''

交集&、並集|

s1 = set([1, 2, 3, 4, 5])
s2 = set([4, 5, 6, 7, 8])

# 交集
s3 = s1 & s2
print(s3)
print(type(s3))

# 並集
s4 = s1 | s2
print(s4)
print(type(s4))

'''結果爲:
{4, 5}
<class 'set'>
{1, 2, 3, 4, 5, 6, 7, 8}
<class 'set'>
'''

類型轉換

  • list—>set
  • tuple—>set
  • set—>list
s1 = {1, 2, 3, 4, 5}
print(s1)

list1 = list(s1)
print(list1)

'''結果爲:
{1, 2, 3, 4, 5}
[1, 2, 3, 4, 5]
'''
  • set—>tuple
s1 = {1, 2, 3, 4, 5}
print(s1)

tuple1 = tuple(s1)
print(tuple1)

'''結果爲:
{1, 2, 3, 4, 5}
(1, 2, 3, 4, 5)
'''
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章