1. 程式人生 > >Python中的序列與集合

Python中的序列與集合

之前有說到Python中的字串、列表以及元組在很多方面上比較相似,很大程度是因為它們的資料儲存是有序的,也就是我們統稱的序列,這才能讓我們通過序號進行資料的獲取,就像下面這樣。

既然已經有了個統稱,那麼必然它們可以有相同的特性,這裡列舉了幾個常用的方法,針對有序序列都是通用的。

如圖可知這幾個方法的大體意思,在我們判斷一個元素是否存在於序列的時候會採取 in 或者not in 操作,返回值就是bool型別;使用 len 方法來獲取序列的長度,通過 max 和 min 來得到序列中的最大值和最小值。

不過這裡有個需要提醒的就是在我們判斷字串的極大值和極小值的時候,我們是通過Ascll碼來比較的,所謂的這個碼其實就是數值,我們通過 ord 方法可以得到字串或者數字的Ascll碼,然後再來比較得到極大值和極小值。(空字串也是有Ascll碼的)

說了序列那麼多,我們現在進入正題哈,說說集合,一個有區別於序列的資料型別。

如圖所示,集合是由花括號包裹的表現形式,而且大體也擁有部分序列的特性,當然集合與序列最大的不同就是,集合是無序的,也就是說我們不能通過序號去得到相應的集合元素。那怎麼得到集合中的元素呢,這個之後再說,我們先來看集合的一些特性。

對比著圖中的輸出結果,可能有人大概猜到一些東西,這裡介紹了三種運算子。首先看看我們的減號在集合中的意義,當一個集合減去另一個集合得到一個新集合,其實也就類似於刪除的感覺,在數學中我們叫做差集(不理解可以翻課本哈),在第一個集合中去除第二個集合中的元素,可能有人問,如果第二個集合更大,那麼得到的就應該是空的集合,不理解的可以嘗試看看

然後我們再來看 & 操作,它代表的意思是取出兩個集合中共同的元素組成的新集合,在數學中我們叫做交集,於此關於 | 操作,它代表的就是兩個集合的合併,在數學中叫做並集,而這裡又涉及到集合的一個重要特性,也就是不重複性,在一個集合中是不會出現相同的元素,不管是如何的操作,最後都會去除其中的重複元素。

說完這幾種集合中的操作,我們再來看如何表示一個空的集合呢,如下:

由圖可知,僅僅一個花括號並不能表示一個空集合,反而表示的是另外的一個數據型別,這個型別我們之後再說,那真正表示一個空集合就是 set() 。

好了,序列和集合的就說這麼多,後面再說說其它的資料型別。