自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

注意!在Python中不要所有操作都用列表

開發(fā) 后端
和許多東西一樣,Python也有一些藏得并不隱蔽的“寶石”,這些“寶石”能夠為Python的愛好者們提升技能等級,其中有兩個寶石,它們分別是:元組和集合。

學(xué)習(xí)新事物時,我們常常對所有可能發(fā)生的情況都不了解。通過反復(fù)試錯,我們會總結(jié)出一個方法或一個規(guī)律來應(yīng)對新事物可能發(fā)生的問題,一旦某個方法十分有效,我們就會一直使用這個方法……

在Python中,這個方法就是使用列表。

列表十分方便、它的結(jié)構(gòu)清晰靈活。而且學(xué)習(xí)列表推導(dǎo)有著一種純粹的樂趣,就像是中了數(shù)據(jù)類型中的頭獎。

使用列表的感覺就像是在《火影死神大亂斗》游戲中一直使用自己最愛的特殊招式。

和許多東西一樣,Python也有一些藏得并不隱蔽的“寶石”,這些“寶石”能夠為Python的愛好者們提升技能等級,其中有兩個寶石,它們分別是:元組和集合。

現(xiàn)在,讓我們來看一看這些特殊的數(shù)據(jù)類型,并探討為什么應(yīng)該使用這些數(shù)據(jù)類型而不用列表。

元組

元組是不可變的有序項序列。“不可變”——是它的秘密武器。一旦定義了元組,它就不能被更改。

使用元組的規(guī)則與列表幾乎相同,不同之處只是使用圓括號而不是方括號。另外,還可以獲取列表并將其轉(zhuǎn)換為元組。

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

不可變有什么特別之處?乍一看似乎很不方便;但是,每次恰當(dāng)?shù)厥褂迷M而不是用列表的時候,其實是在做兩件事。

  • 編寫更多有意義的安全代碼。當(dāng)變量被定義為元組時,就是在告訴自己和代碼的任何其他查看器:“這不會改變”。為了防止遺漏備忘錄,任何修改變量的嘗試都將出現(xiàn)錯誤。
  • 提高性能。迭代元組比迭代列表更快。元組比列表更節(jié)省內(nèi)存。由于元組中的項目數(shù)不變,因此其內(nèi)存占用更為簡潔。

如果列表的大小未經(jīng)修改,或者其目的只是用于迭代,那么可以嘗試用元組替換。

集合

集合是一個無序的、唯一的數(shù)據(jù)項組合。一個集合不能有重復(fù)值,這就是它與列表的區(qū)別。

若要定義集合,就要用大括號括起逗號分隔的項列表。不要和創(chuàng)建具有鍵值對的詞典相混淆。與元組一樣,可以通過轉(zhuǎn)換另一種數(shù)據(jù)類型來創(chuàng)建集合。

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

那么如果兩項完全相同會如何呢?

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

如你所見,第二個“4”被移除了。如果原始值是一個重復(fù)項列表,也會發(fā)生同樣的情況。

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

當(dāng)比較多個集合時,集合是非常有用的,想想維恩圖便可知。還有union()、intersection()和difference()函數(shù)將分別告訴你兩個集合之間的組合值、共享值和不同值。

[[314735]]

來源:Pexels

列表用起來很舒服可靠,但可能還有更好的工具,我們不能停止探索的腳步。

使用元組可以更快地處理并保護(hù)開發(fā)者聲明的數(shù)據(jù)結(jié)構(gòu)。使用集合可以確保唯一值并利用比較方法。

Python就是要為每個問題都找到合適的工具。

 

責(zé)任編輯:趙寧寧 來源: 讀芯術(shù)
相關(guān)推薦

2021-12-09 06:50:11

POST請求接口

2018-07-03 14:00:44

Linux終端script命令

2015-06-19 07:30:35

AWS遷移遺留應(yīng)用云遷移

2020-10-31 21:59:37

Python列表開發(fā)

2010-08-19 14:11:29

DB2臨時表

2010-08-03 17:00:29

DB2 batch u

2010-06-17 16:22:04

SQL Server

2020-04-03 08:30:44

RabbitMQKafka軟件

2016-09-18 16:13:30

2009-02-17 10:12:10

ASP面試技術(shù)

2012-11-19 16:32:16

數(shù)據(jù)中心

2012-11-19 14:25:07

數(shù)據(jù)中心SDN

2010-03-17 13:14:00

Python Libr

2010-03-15 15:38:47

Python運(yùn)行

2010-07-30 10:11:05

DB2臨時表

2011-04-11 16:23:57

2022-12-06 08:26:16

SpringAOPthis調(diào)用方法

2024-04-12 14:25:05

Python時間戳判斷列表

2010-03-16 10:00:37

Python函數(shù)

2010-03-24 09:46:16

Python 2.6
點贊
收藏

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