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

編寫更簡(jiǎn)潔的Python代碼的5個(gè)技巧

開發(fā) 后端
許多人剛開始學(xué)習(xí)編程時(shí)會(huì)選擇Python。 Python確實(shí)是初學(xué)者友好的。 當(dāng)您按照其官方網(wǎng)站上的下載和安裝說(shuō)明進(jìn)行操作時(shí),很快就可以編寫" Hello World"程序。

 許多人剛開始學(xué)習(xí)編程時(shí)會(huì)選擇Python。 Python確實(shí)是初學(xué)者友好的。 當(dāng)您按照其官方網(wǎng)站上的下載和安裝說(shuō)明進(jìn)行操作時(shí),很快就可以編寫" Hello World"程序。

[[336571]]

當(dāng)您了解更多關(guān)于Python的知識(shí)時(shí),您可能會(huì)著迷于它使用不同方法實(shí)現(xiàn)相同功能的靈活性。 但是,遲早您會(huì)發(fā)現(xiàn)某些解決方案比其他解決方案更簡(jiǎn)潔。 更重要的是,從長(zhǎng)遠(yuǎn)來(lái)看,更簡(jiǎn)潔的代碼往往更易于閱讀和維護(hù)。

當(dāng)然,有很多方法可以用Python編寫簡(jiǎn)潔的代碼。 在本文中,我想分享五個(gè)技巧,這些技巧在日常Python項(xiàng)目中特別有用。 為了說(shuō)明為什么這些技巧可以提供更簡(jiǎn)潔的解決方案,在每個(gè)部分中,為了比較目的,我都會(huì)提供替代的,通常更長(zhǎng)的解決方案。

1.列表,字典和集合理解

列表理解是許多Python程序員最喜歡的功能之一。 這是從迭代器創(chuàng)建列表對(duì)象的非常簡(jiǎn)潔的方法。 基本語(yǔ)法為[可迭代的x表達(dá)式]。 讓我們看一些示例以了解其用法。

如您所見(jiàn),在不使用列表推導(dǎo)的情況下,我們必須創(chuàng)建一個(gè)空列表,并通過(guò)運(yùn)行for循環(huán)來(lái)添加每個(gè)數(shù)字的平方,這需要三行代碼。 相比之下,我們只使用一行代碼就可以通過(guò)列表理解來(lái)構(gòu)建相同的正方形列表。 那不是很酷嗎?

除了列表理解之外,還有字典和集合理解。 字典理解具有以下基本語(yǔ)法{key_expr:用于iterable中的x的value_expr},而對(duì)于集合理解,其基本語(yǔ)法是{用于x中的iterable的表達(dá)式}。 讓我們?cè)谙旅婵匆恍┖?jiǎn)單的例子。 與列表理解示例類似,將花費(fèi)多行代碼來(lái)構(gòu)建所需的字典并進(jìn)行設(shè)置,而無(wú)需使用理解技術(shù)。

2.將元組命名為數(shù)據(jù)結(jié)構(gòu)

我們知道元組對(duì)于存儲(chǔ)一些相關(guān)數(shù)據(jù)很有用。 但是,使用它們并不是很方便,尤其是在訪問(wèn)特定元素方面,因?yàn)槲覀儽仨氂涀№樞虿⑹褂锰囟ㄔ氐恼_索引。

盡管如果不想使用元組,我們可以建立一個(gè)自定義類來(lái)管理相關(guān)數(shù)據(jù),但是namedtuple數(shù)據(jù)類型可以是非常有用的輕量級(jí)數(shù)據(jù)結(jié)構(gòu)。 通過(guò)集合模塊可用,namedtuple數(shù)據(jù)類型采用以下基本語(yǔ)法:namedtuple(Typename,field_names)。 語(yǔ)法雖然不太簡(jiǎn)單,但實(shí)際上從概念上很容易理解。

讓我們看一些相關(guān)的例子。 理想的功能是創(chuàng)建一個(gè)數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)可以存儲(chǔ)學(xué)生的信息,包括姓名,性別和學(xué)生ID號(hào)碼。

如您所知,使用namedtuple,我們可以使用更簡(jiǎn)潔的代碼編寫輕量級(jí)的數(shù)據(jù)結(jié)構(gòu)。 當(dāng)然,應(yīng)該注意,自定義類為您提供了可以操縱的更多功能。 但是,如果您的目的只是創(chuàng)建用于數(shù)據(jù)存儲(chǔ)和檢索目的的數(shù)據(jù)結(jié)構(gòu),則絕對(duì)可以考慮使用namedtuple。

3.使用enumerate()和zip()進(jìn)行迭代

編碼的一項(xiàng)重要原則是DRY,它代表"不要重復(fù)自己"。 當(dāng)我們處理一系列數(shù)據(jù)(例如數(shù)字列表)時(shí),這是一項(xiàng)常見(jiàn)的任務(wù),我們需要對(duì)列表中的每個(gè)數(shù)字執(zhí)行相同的操作。 為了避免重復(fù)相同的代碼,我們可以使用for循環(huán)來(lái)運(yùn)行整個(gè)列表的迭代。

當(dāng)我們迭代列表或任何序列時(shí),有時(shí)我們還需要知道項(xiàng)目在序列中的位置。 有兩種方法可以做到這一點(diǎn)。 讓我們看看它們是什么。

如您所見(jiàn),通過(guò)使用內(nèi)置函數(shù)enumerate(),我們可以輕松地訪問(wèn)序列中的索引和元素,這比第一次迭代更簡(jiǎn)潔。 更重要的是,它可以設(shè)置一個(gè)起始數(shù)字進(jìn)行計(jì)數(shù)。 在上面的示例中,我們將其設(shè)置為1。

除了enumerate()函數(shù)外,zip()函數(shù)在迭代中也很有用。 此函數(shù)能夠從多個(gè)可迭代對(duì)象創(chuàng)建元組,而無(wú)需顯式創(chuàng)建這些可迭代對(duì)象的復(fù)合可迭代對(duì)象。 聽(tīng)起來(lái)有些混亂,但是我們可以在下面的示例中看到它的用法。

基本上,zip()函數(shù)的作用是在每次迭代中從可迭代對(duì)象中獲取每個(gè)元素,以依次形成一個(gè)元組。 該代碼比冗長(zhǎng)的代碼更簡(jiǎn)潔,可讀性更好,不是嗎?

4.使用f字符串格式化字符串

字符串是一種基本的數(shù)據(jù)類型,我們幾乎在任何地方都使用它們。 字符串的一項(xiàng)基本應(yīng)用是將它們以某種格式使用。 有幾種格式化字符串的方法,為此,我想介紹一下f字符串。

簡(jiǎn)而言之,f字符串是內(nèi)插的字符串文字,使用字母f(或F)作為字符串文字的前綴。 為了編寫簡(jiǎn)潔的代碼,我將僅向您展示兩個(gè)首選f字符串的用例。

  • 顯示變量。 最基本的用法是顯示一些變量的值,以便在開發(fā)過(guò)程中進(jìn)行調(diào)試。 如果使用傳統(tǒng)的format()方法,則需要更長(zhǎng)的時(shí)間。
  • 連接變量/連接字符串。 f字符串不是直接使用+符號(hào)和字符串的join()方法,而是用于字符串串聯(lián)的非常簡(jiǎn)單的方法,并且具有優(yōu)質(zhì)的可讀性。 實(shí)際用途包括構(gòu)造文件路徑,如下例所示。

5. Lambda函數(shù)

Lambda函數(shù)是Python中的匿名函數(shù),通常在需要小的操作的地方使用。 Lambda函數(shù)可以采用一個(gè)或多個(gè)參數(shù),并且具有單個(gè)表達(dá)式,并且具有以下語(yǔ)法Lambda參數(shù):expression。

我將僅使用內(nèi)置的sorted()函數(shù)來(lái)演示lambda函數(shù)的用法。 具體來(lái)說(shuō),sorted()函數(shù)使用key參數(shù)指定的key函數(shù)對(duì)可迭代對(duì)象進(jìn)行排序。 我將向您展示,我們可以將lambda函數(shù)用作鍵參數(shù),而不是使用def關(guān)鍵字聲明常規(guī)函數(shù)。

結(jié)論

在本文中,我們回顧了五個(gè)有用的技巧,使我們可以編寫更簡(jiǎn)潔的Python代碼。 通過(guò)減少代碼編寫,實(shí)際上提高了可讀性和可維護(hù)性-幾乎總是如此。

但是,請(qǐng)記住,簡(jiǎn)潔的代碼不應(yīng)導(dǎo)致任何歧義或混亂。 您必須在簡(jiǎn)潔和可讀性之間找到良好的平衡。 如果它們發(fā)生沖突,即使有時(shí)需要更多代碼,我們也應(yīng)首先尊重可讀性。

謝謝閱讀。

 

責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2022-08-28 19:03:18

JavaScript編程語(yǔ)言開發(fā)

2022-05-10 10:28:21

JavaScript代碼

2024-01-30 08:54:05

JavaScript技巧代碼

2024-09-18 05:00:00

Python代碼

2024-11-11 17:00:27

字典壓縮Python代碼

2025-04-29 02:22:00

Python技巧CLI

2019-07-31 10:24:16

JavaScript瀏覽器口袋妖怪

2023-06-19 15:36:30

JavaScrip技巧開發(fā)

2020-10-04 13:15:37

代碼技術(shù)開發(fā)

2020-05-08 19:52:31

Reactreact.js前端

2025-02-17 08:50:00

CSS代碼JavaScript

2023-03-09 15:45:36

ES6編碼技巧數(shù)組

2023-02-23 16:49:11

ES6技巧

2021-04-25 11:31:45

React代碼整潔代碼的實(shí)踐

2023-08-27 16:19:09

JavaScript編程語(yǔ)言

2024-03-28 14:29:46

JavaScript編程

2024-12-04 15:10:21

2021-02-23 10:48:30

Python代碼開發(fā)

2014-07-29 13:55:10

程序員代碼

2024-12-19 09:05:13

Python鏈?zhǔn)秸{(diào)用
點(diǎn)贊
收藏

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