集合建立集合set
是python
中的另一種資料型別,用括起來表示,裡面是單個的物件,不是鍵值對。集合的特點是裡面的元素有的可變,有的不可變;元素無次序,元素不可重複。集合
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配置中有兩種資料型別,一種是值型別,另一種是實體型...