偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

請(qǐng)停止在Python中無(wú)休止使用列表

開(kāi)發(fā) 后端
然后Python不止列表,還有元組和集合。讓我們回顧一下這些特殊的數(shù)據(jù)類型,并且說(shuō)明在什么情境下應(yīng)該使用它們而不是列表。

當(dāng)你學(xué)習(xí)不熟悉的新東西的時(shí)候,一旦發(fā)現(xiàn)某樣?xùn)|西有效,那么你就會(huì)堅(jiān)持使用它而放棄探索更多的可能性。在Python中,那樣?xùn)|西就是列表。

使用列表的感覺(jué)就像是在一直重復(fù)你最喜歡的特別動(dòng)作。

然后Python不止列表,還有元組和集合。讓我們回顧一下這些特殊的數(shù)據(jù)類型,并且說(shuō)明在什么情境下應(yīng)該使用它們而不是列表。

[[349638]]

元組

元組是不變的有序項(xiàng)目序列。最后一個(gè)詞——不可變——是這里的秘密武器。一旦定義了元組,就不能更改它。

使用元組的語(yǔ)法幾乎與列表相同,只是使用了括號(hào)而不是方括號(hào)。此外,還可以將列表轉(zhuǎn)換為元組。

  1. # how to define a list 
  2. num_list = [1,2,3,4] 
  3. # how to define a tuple 
  4. num_tuple = (1,2,3,4) 
  5. # use tuple() to convert 
  6. num_convert = tuple(num_list) 

不可變有什么特別之處呢?一開(kāi)始可能會(huì)覺(jué)得不方便;但是,每次使用元組而不是列表時(shí),您都會(huì)做兩件事。

  • 編寫(xiě)更加語(yǔ)義化和安全的代碼。當(dāng)您將變量定義為元組時(shí),您是在告訴自己和代碼的任何其他查看者:“這不會(huì)改變”。為了防止您遺漏了備注,任何修改變量的嘗試都會(huì)遇到一個(gè)錯(cuò)誤。
  • 改善性能。遍歷元組將比遍歷列表更快。元組比列表的內(nèi)存效率更高。由于元組中的項(xiàng)數(shù)沒(méi)有變化,因此它的內(nèi)存占用更簡(jiǎn)潔。

如果您的列表的大小沒(méi)有被修改,或者其目的僅僅是用于迭代,那么嘗試用元組替換它。

集合

集合是無(wú)序的、唯一的項(xiàng)集合。集合不能有重復(fù)值,這就是它與列表的區(qū)別。

若要定義集合,請(qǐng)使用大括號(hào)括起以逗號(hào)分隔的項(xiàng)列表。不要將其與創(chuàng)建具有鍵-值對(duì)的字典混淆。與元組一樣,可以通過(guò)轉(zhuǎn)換另一種數(shù)據(jù)類型來(lái)創(chuàng)建集合。

  1. # how to define a list 
  2. num_list = [1,2,3,4] 
  3. # how to define a set 
  4. num_set = {1, 2, 3, 4} 
  5. # use set() to convert 
  6. num_convert = set(num_list) 

那么,如果兩項(xiàng)完全相同會(huì)發(fā)生什么呢?

  1. nums = {1,2,3,4,4} 
  2. print(nums) # 1,2,3,4 

如您所見(jiàn),第二個(gè)4被刪除了。如果原始值是重復(fù)項(xiàng)的列表,也會(huì)發(fā)生同樣的情況。

那么,為什么要使用集合而不是列表呢?首先,轉(zhuǎn)換為集合是刪除重復(fù)值的最簡(jiǎn)單方法。此外,與任何數(shù)據(jù)類型一樣,set有自己的一組方法。

在比較多個(gè)集合時(shí),集合是非常有用的——想想維恩圖。union()、intersection()和difference()函數(shù)將分別告訴您兩個(gè)集合之間的組合值、共享值和不同值。

總結(jié)

Python就是要為每個(gè)問(wèn)題找到合適的工具。

雖然列表是舒適的,可靠的,并在早期學(xué)習(xí),可能有一個(gè)更好的工具。

開(kāi)始使用元組來(lái)更快地處理和保護(hù)已聲明的數(shù)據(jù)結(jié)構(gòu)。開(kāi)始使用集合來(lái)確保值的惟一性并利用比較方法。

 

責(zé)任編輯:趙寧寧 來(lái)源: Python學(xué)會(huì)
相關(guān)推薦

2012-03-07 11:30:07

常小兵寬帶寬帶資費(fèi)

2021-12-25 19:19:18

AndroidAndroid 13安卓

2009-10-30 08:44:37

Windows 7系統(tǒng)升級(jí)重啟

2017-07-26 10:57:29

程序員加班原因

2025-09-18 11:45:56

2013-05-29 10:10:34

游戲設(shè)計(jì)

2024-04-01 09:00:00

AI智能體

2019-06-11 12:16:37

新零售互聯(lián)網(wǎng)巨頭

2024-08-20 13:15:22

2009-03-06 10:10:00

廣播風(fēng)暴網(wǎng)絡(luò)

2023-05-24 16:41:41

React前端

2021-03-14 22:00:17

MongoDB循環(huán)隊(duì)列

2018-10-08 08:39:07

程序員ZooKeeper騰訊

2018-09-03 09:40:38

華為程序員危機(jī)

2024-05-10 12:29:30

接口類型

2020-10-23 09:57:23

TypeScriptany代碼

2018-03-14 09:01:23

區(qū)塊鏈

2022-11-02 18:33:09

谷歌Chrome瀏覽器

2021-06-29 11:15:06

云計(jì)算云計(jì)算環(huán)境云應(yīng)用

2023-11-21 16:34:06

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)