讓你徹底弄懂Python中的集合

2021-10-05 17:53:31 字數 4277 閱讀 7469

初學python時,有很多定義都比較模糊,不是特別理解,導致一到使用就卡殼。本文致力用最簡潔的語言、最清晰的例子,跟你一起理解python中的集合函式。

三、集合的特點

四、集合的更新

五、集合的運算

六、總結

高中的時候我們就學過集合,python中的集合與之概念類似,又有不同。python中的集合專門用於儲存資訊,儲存的元素無序且不能重複,它用一對花括號{}定義,資料之間用逗號隔開。

python中有兩種不同的型別的集合:可變集合不可變集合。可變集合可以新增或刪除元素,但可變集合儲存的元素不能被雜湊,因此不能用做字典的鍵。不可變集合不能新增或刪除元素,集合儲存的元素元素可以被雜湊,因此可以用做字典的鍵。python中集合之間也可以求並集、交集、差集、差分等運算。

python中用set和{}建立的集合是可變集合,用frozenset建立的是不可變集合。不可變集合不可以增加、刪除集合中的元素,即集合內容不可變。這類似於字串和元組,如果試圖改變,python會報錯。不可變集合除了內容不能更改外,其他功能及操作和可變集合一樣。不可變集合有乙個非常有用的例項,會專門寫一篇文章進行介紹。接下來重點介紹可變集合

1 語法

set

(object

)

其中object可以是字串,元組,列表,字典等物件。

2 例項

例項1—(object為字串)

set

('阿黎逸陽'

)

得到結果:

:從例項1知,集合是無序的,把字串拆成了乙個乙個的元素分別儲存。

例項2—(object為元組)

set((

1,1,2))

得到結果:

:從例項2知,集合中的元素不能重複,可以用集合去重。

例項3—(object為列表)

set([

'好',

'好',

'學',

'習',

'天',

'天',

'向',

'上']

)

得到結果:

例項4—(object為字典)

set

()

得到結果:

:從例項4知,當object是字典時,取出的是字典的鍵作為集合的值。

特點1 不能通過索引訪問

集合是無序的,故不能通過索引訪問。

特點2 可以通過for迴圈呼叫集合中的元素

a =

set([1

,'希望'

,'明天'

,'會'

,'更好',1

])for i in a:

print

(i)

得到結果:

明天1會

希望更好

對於可變集合,可以用內建的add方法新增乙個成員、remove方法刪除乙個成員、update方法新增乙個或多個成員。操作符「-=」用於刪除集合中的子集合。

1 用add方法新增乙個集合成員

add方法可以新增乙個集合成員,新增的物件可以是單個元素,也可以是單個字串。但是不能是元組或列表等物件,即使元組或列表裡的元素只有乙個也會報錯。

例項1—(新增單個數字)

b =

b.add(

3)

得到結果:

例項2—(新增乙個字串)

b =

b.add(

'aaa'

)

得到結果:

2 用remove方法刪除乙個集合成員

c=

set([1

,'希望'

,'明天'

,'會'

,'更好',1

])c.remove(

1)

得到結果:

3 用update方法新增乙個或多個集合成員

例項1—(新增乙個成員)

c=

set([1

,'希望'

,'明天'

,'會'

,'更好',1

])c.update(

'a')

得到結果:

例項2—(新增多個成員)

b =

c =b.update(c)

得到結果:

4  用「-=」方法刪除集合中的子集合

b =c =

b -= c #等價於b = b - c

得到結果:

python中集合之間也可以求並集、交集、差集、差分等運算。

1 兩個集合求並集

set1 =

set2 =

set3 = set1 | set2 #兩個集合中的元素合併去重

得到結果:

2 兩個集合求交集
set1 =

set2 =

set4 = set1 & set2 #兩個集合中都有的元素

得到結果:

3 兩個集合求差集
set1 =

set2 =

set5 = set1 - set2 #set1中的元素去除set2中有的元素

得到結果:

4 兩個集合求差分

集合的差分運算又叫對稱差運算,是集合的異或運算。使用符號『^』或函式symmetric_difference可以執行集合的差分運算。在python語言中,由不同時屬於集合set1和set2的成員組成新的集合,叫集合的差分運算。

set1 =

set2 =

set6 = set1^set2

得到結果:

1.python中集合儲存的元素無序且不能重複。

2.python中集合分為可變集合(用set和{}建立)和不可變集合(用frozenset建立)。可變集合可以新增或刪除元素,不可變集合不能被修改。

3.python中集合不能通過索引訪問,可以通過for迴圈呼叫集合中的元素。

4.python中集合可以通過add(新增乙個集合成員)、remove(刪除乙個集合成員)、update(新增乙個或多個集合成員)等方法對集合進行更新。

5.python中集合可以求並集、交集、差集、差分等運算。

參考文獻

用python繪製詞雲圖

python人臉識別—我的眼裡只有你

python畫好看的星空圖(唯美的背景)

用python中的py2neo庫操作neo4j,搭建關聯圖譜

python浪漫表白原始碼合集(愛心、玫瑰花、**牆、星空下的告白)

徹底讓我弄懂this,call,apply的文章

一 關於this 首先關於this我想說一句話,這句話記住了this的用法你也就差不多都能明白了 this指的是當前函式的物件 這句話可能比較繞,我會舉出很多例子和這句話呼應的!看下文 1.首先看下面這段 定義乙個函式,彈下this,js function dosomething dosomethi...

徹底弄懂js中的this指向

可以先參考這篇部落格 全域性作用域或者普通函式中this指向全域性物件window。直接列印 console.log this window function宣告函式 function bar bar window function宣告函式賦給變數 var bar function bar wind...

徹底弄懂css中單位px和em的區別

國內的設計師大都喜歡用px,而國外的 大都喜歡用em,那麼兩者有什麼區別,又各自有什麼優劣呢?1.ie無法調整那些使用px作為單位的字型大小 2.國外的大部分 能夠調整的原因在於其使用了em作為字型單位 3.firefox能夠調整px和em,但是96 以上的中國網民使用ie瀏覽器 或核心 px畫素 ...