Python札記10 集合set

2021-09-25 06:35:13 字數 2210 閱讀 1831

集合setpython中的另一種資料型別,用括起來表示,裡面是單個的物件,不是鍵值對。集合的特點是裡面的元素有的可變,有的不可變;元素無次序,元素不可重複。集合set可以說是列表和字典的雜合

建立集合set

建立集合有兩種方式:

set建立

如果有重複的元素會自動進行過濾,一種高效的去重方式:

s1 = set("peter")

print(s1)

建立

同樣的會自動去重建立,由於已經使用在字典中,不建議使用

s2 = 

print(s2)

frozenset()

通過set建立的集合都是可變,不可雜湊的集合;通過frozenset建立的是不可變的集合

雜湊和不可雜湊

雜湊hashable:不可變的,例如字串、整數型、布林值等,字典的鍵必須是不可變的

不可雜湊unhashable:可變的,例如列表、字典等,利用set()建立的集合是可變集合

集合set的方法

方法作用

add()

給乙個集合增加元素,引數只能有乙個:集合與元素

update

用原有集合自身個其他東西構成的新集合,來更新原來的集合

pop隨機刪除乙個元素,返回元素本身;不能指定引數,不能指定刪除某個元素

remove(obj)

obj必須是集合set中的元素,否則報錯;沒有返回值

discard(obj)

obj如果在集合中就執行刪除,否則不進行任何操作,與remove不同

clear()

刪除所有元素,bool(set)false

# add

s3 = set()

s3.add("peter") # 一次只能增加乙個元素

print(s3)

s4 = set("python")

s4.add("xiaoming")

# s4.add('[1, 2, 3]') 報錯:列表是可變,不可雜湊的;但集合中的元素必須是不可變的,可雜湊的

print(s4)

# update

s3.update(s4) # 將s4中的元素合併到s3中

print(s3)

s4.update("goo")

print(s4)

# 注意結果的去重

s4.update((2, 3))

print(s4)

集合運算

兩個集合是否相等==超集b.issuperset(a)b>a和子集a.issubset(b)a

並集:a.union(b)或者使用|得到新的集合,原來的集合不變交集:a.intersection(b)或者使用&差集:a.difference(b)或者a-b,(a中存在,b中不存在的元素)

對稱差集:a.symmetric_difference(b),(a,b的並集除去a,b的交集)

5 03 集合框架 set集合

一 set集合概述 乙個不包含重複元素的 collection。更確切地講,set 不包含滿足e1.equals e2 的元素對e1和e2,並且最多包含乙個 null 元素。正如其名稱所暗示的,此介面模仿了數學上的 set 抽象。在所有構造方法以及 add equals 和 hashcode 方法的...

python學習筆記2 6 集合(set)

一般來說,python中常用的資料結構是 列表 list 字典 dict 元組 tuple 但是我們常常還會看到另外一種結構 集合 set 個人認為,字典 dict 就是一種特殊的集合 set 它特殊的地方是集合的元素之間有一對一的對應關係。集合,在定義上來說就是無序不重複的元素集,set裡面可以是...

08 集合對映 set

實際上,set這種集合對映我們在前面已經學習關聯關係對映時已經用過了,實體類 實體類都在在資料庫中有對應的表 中有一對多或者多對多的關係,並且我們可以通過某一側訪問到另一側,就是通過在類中設定 set集合並配置set對映來實現的。在hibernate配置中有兩種資料型別,一種是值型別,另一種是實體型...