本文的文字及圖片來源于網路,僅供學習、交流使用,不具有任何商業用途,著作權歸原作者所有,如有問題請及時聯系我們以作處理
以下文章來源于騰訊云 作者:昱良

串列十分方便、它的結構清晰靈活,而且學習串列推導有著一種純粹的樂趣,就像是中了資料型別中的頭獎,
使用串列的感覺就像是在《火影死神大亂斗》游戲中一直使用自己最愛的特殊招式,
和許多東西一樣,Python也有一些藏得并不隱蔽的“寶石”,這些“寶石”能夠為Python的愛好者們提升技能等級,其中有兩個寶石,它們分別是:元組和集合,
現在,讓我們來看一看這些特殊的資料型別,并探討為什么應該使用這些資料型別而不用串列,
來源:Pexels
元組
元組是不可變的有序項序列,“不可變”——是它的秘密武器,一旦定義了元組,它就不能被更改,
使用元組的規則與串列幾乎相同,不同之處只是使用圓括號而不是方括號,另外,還可以獲取串列并將其轉換為元組,
# how to define a list num_list = [1,2,3,4]# how to define a tuple num_tuple = (1,2,3,4)# use tuple() to convert num_convert = tuple(num_list)
不可變有什么特別之處?乍一看似乎很不方便;但是,每次恰當地使用元組而不是用串列的時候,其實是在做兩件事,
· 撰寫更多有意義的安全代碼,當變數被定義為元組時,就是在告訴自己和代碼的任何其他查看器:“這不會改變”,為了防止遺漏備忘錄,任何修改變數的嘗試都將出現錯誤,
· 提高性能,迭代元組比迭代串列更快,元組比串列更節省記憶體,由于元組中的專案數不變,因此其記憶體占用更為簡潔,
如果串列的大小未經修改,或者其目的只是用于迭代,那么可以嘗試用元組替換,
集合
集合是一個無序的、唯一的資料項組合,一個集合不能有重復值,這就是它與串列的區別,
若要定義集合,就要用大括號括起逗號分隔的項串列,不要和創建具有鍵值對的詞典相混淆,與元組一樣,可以通過轉換另一種資料型別來創建集合,
# how to define a list num_list = [1,2,3,4]# how to define a set num_set = {1, 2, 3, 4}# use set() to convert num_convert = set(num_list)
那么如果兩項完全相同會如何呢?
nums = {1,2,3,4,4}
print(nums) # 1,2,3,4
如你所見,第二個“4”被移除了,如果原始值是一個重復項串列,也會發生同樣的情況,
那么,為什么要使用集合而不是串列呢?首先,轉換為集合是洗掉重復值的最簡單方法,此外,集合和任何資料型別一樣都有自己的方法集,
當比較多個集合時,集合是非常有用的,想想維恩圖便可知,還有union()、intersection()和difference()函式將分別告訴你兩個集合之間的組合值、共享值和不同值,
來源:Pexels
串列用起來很舒服可靠,但可能還有更好的工具,我們不能停止探索的腳步,
使用元組可以更快地處理并保護開發者宣告的資料結構,使用集合可以確保唯一值并利用比較方法,
Python就是要為每個問題都找到合適的工具,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/235649.html
標籤:Python
