溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎樣避開for循環(huán)在python3代碼中創(chuàng)建列表

發(fā)布時間:2020-12-04 09:57:37 來源:億速云 閱讀:214 作者:小新 欄目:編程語言

這篇文章主要介紹了怎樣避開for循環(huán)在python3代碼中創(chuàng)建列表,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

先看下面的代碼:

data = [x**2 for x in range(0, 5)]
# 此時data = [0, 1, 4, 9, 16]

如果不知道背后的語法規(guī)則,那么很難理解為什么可以在列表的方括號中寫一個“for”循環(huán)?實際上,這種語法稱為列表推導(dǎo)式,和lambda表達(dá)式類似,都是在代碼很短的情況下被使用。

 

列表推導(dǎo)式或者說列表解析式是一種非常簡潔的創(chuàng)建列表的方式。很多時候我們需要創(chuàng)建一個滿足特定要求的新列表,不得不用for循環(huán)來創(chuàng)建,而用列表推導(dǎo)式來表達(dá)只需要一行代碼即可。列表推導(dǎo)式另一個優(yōu)點(diǎn)是相比于for循環(huán)更高效,因為列表推導(dǎo)式在執(zhí)行時調(diào)用的是Python的底層C代碼,而for循環(huán)則是用Python代碼來執(zhí)行。

比如我們需要創(chuàng)建一個包含平方數(shù)的列表,用for循環(huán)實現(xiàn)方式如下:

squares = []
for i in range(10):
    squares.append(i**2)
 
print(squares)

如果用列表推導(dǎo)式的話只需一行代碼即可實現(xiàn):

squares = [i**2 for i in range(10)]

列表推導(dǎo)式的語法結(jié)構(gòu)可以分為幾部分:

0. “[]”,定義列表的中括號。

1. for循環(huán)初步定義列表。

2. 可選:在for循環(huán)后面可以使用if語句進(jìn)行過濾。

3. 在for循環(huán)前定于列表的元素表達(dá)式,可以是任意的表達(dá)式??梢允莊or循環(huán)中的元素本身,也可以是元素進(jìn)行運(yùn)算后的結(jié)果,也可以是元素組成的元祖或者列表,可以是一個函數(shù),甚至可以是另一個列表解析式(嵌套列表解析式)。

4. 可選:在for循環(huán)后面可以再嵌套for循環(huán)。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享怎樣避開for循環(huán)在python3代碼中創(chuàng)建列表內(nèi)容對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細(xì)的解決方法等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI