變數型別-Set

faithyiyo發表於2018-09-27

教程:
    集合是一個無序不重複元素的序列,它的特點是:有的可變,有的不可變,元素無序不可重複!

一:集合的建立

    (1)使用花括號

        set={value1, values2}
        
        注意建立一個空集合的時候不能用{},此時建立的是一個字典

    (2)使用行內函數set()——>可以原地修改的集合

        s = set()
    
    注意:    集合是無序的(集合不是序列型別,則集合也不支援索引和切片),
        列印結果取決於內部儲存結構和輸出方式

    (3)使用行內函數frozenset()—->hashable 可雜湊卡型別
二:集合的索引(不允許)

     File “<ipython-input-5-9b6a789630ee>”, line 1, in <module>
        set_1[1]
    TypeError: `set` object does not support indexing

三:集合的運算

    (1)元素與集合之間的關係

        `i` in set(`ilove`)

    (2)集合a與集合b之間的關係
        
        a == b            判斷是否相等
        a < b 或者 a.issubset(b) 判斷是否為子集
        a 並 b  —> a|b 或者 a.union(b)
        a 交 b  —> a&b 或者 a.intersection(b)
        a 補 b  —> a-b 或者 a.difference(b)
        a 和 b 的對稱差集    a^b 或者 a.symmetric_difference(b)

        
三:集合元素的新增

    (1)方法一:    s.add(x)
    (2)方法二:      s.update(x)    其中x可以是列表,元組,字典

四:集合元素的刪除
    
    (1)方法一:    s.remove(x)    元素不存在發生錯誤
    (2)方法二:      s.discard(x)    元素不存在不會發生錯誤
    (3)方法三:      s.pop()        隨機刪除一個元素
    (4)方法四:      s.clear()    清空集合

五:集合內建函式

    len(set)—-set元素的總數
    set.add()—–新增
    set.update()–更新
    還包括上面的四個函式
    
CODE:
# —————————————————————————————————–#
# 集合的建立
# —————————————————————————————————–#
set_1 = set(`abracadabra`)  # 建立可變的集合
print(“set_1:”, set_1)

set_1.add(`python`)         # 元素的新增
print(“新增Python後set_1:”, set_1)

set_2 = set(`alacazam`)
print(“set_2:”, set_2)

set_3 = frozenset(`faith`)  # 建立不可變的集合驗證元素不可新增
print(“建立不可變集合set_3:”, set_3)

# —————————————————————————————————–#
# 集合的運算
# —————————————————————————————————–#
print(“set_1 – set_2: “, set_1 – set_2)

print(“set_1 | set_2: “, set_1 | set_2)

print(“set_1 & set_2: “, set_1 & set_2)

print(“set_1 ^ set_2: “, set_1 ^ set_2)

# —————————————————————————————————–#
# 集合元素的新增(對於可變集合)
# —————————————————————————————————–#

# 方法一

set_2 = set(`alacazam`)
set_2.add(“faith”)
print(“新增元素方法一:”, set_2)

# 方法二
x = {1, 2, 3, `aaa`}        # 列表
y = (1, 2, 3, `aaa`)        # 元組
z = {1: `wang`, 2: `aaa`}   # 字典—>只新增鍵值

set_2.update(z)
print(“新增元素方法二:”, set_2)

# —————————————————————————————————–#
# 集合元素的刪除
# —————————————————————————————————–#

# 方法一
set_2.remove(`faith`)
print(“刪除元素方法一:”, set_2)

# 方法二
set_2.discard(`1`)
print(“刪除元素方法二:”, set_2)

# 方法三
set_2.pop()

print(“刪除元素方法三:”, set_2)
# 方法三
set_2.clear()
print(“刪除元素方法四:”, set_2)

相關文章