溫馨提示×

溫馨提示×

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

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

如何在Python中使用列表推導式

發(fā)布時間:2021-04-30 16:18:12 來源:億速云 閱讀:151 作者:Leah 欄目:開發(fā)技術

如何在Python中使用列表推導式?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

python的數(shù)據(jù)類型有哪些?

python的數(shù)據(jù)類型:1. 數(shù)字類型,包括int(整型)、long(長整型)和float(浮點型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運算,有兩個值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數(shù)據(jù)類型,集合中可以放任何數(shù)據(jù)類型。5. 元組,元組用”()”標識,內部元素用逗號隔開。6. 字典,字典是一種鍵值對的集合。7. 集合,集合是一個無序的、不重復的數(shù)據(jù)組合。

和列表一樣,列表推導式也采用方括號[]表示,并且用到了一個簡寫版的for循環(huán),第一部分是一個生成結果列表元素的表達式,第二部分是一個輸入表達式上的循環(huán)。閱讀理解列表表達式的推薦做法是先從里面的for循環(huán)開始,向右查看是否有if條件,然后將推導式開始的那個表達式映射到每一個匹配的元素上去。

>>> even_numbers = [x for x in range(10) if x%2 == 0]
>>> even_numbers
[0,2,4,6,8]

以上例子展示了使用if語句來過濾元素。

Python還支持另外一種和列表表達式類似的結構,叫做生成器表達式(generator expression),除了它有一種稱之為“惰性計算”的特點以外,它和列表推導式的用法基本一致。它的工作方式是每次處理一個對象,而不是一口氣處理和構造整個數(shù)據(jù)結構,這樣做的潛在優(yōu)點是可以節(jié)省大量的內存。

>>> even_numbers = (x for x in range(10000) if x%2 == 0)
>>> even_numbers
<generator object at 0x....>

在處理大量的數(shù)據(jù)是,最好考慮生成器表達式而不是列表推導式。

另一個列表推導式和生成器表達式的例子是:

>>> data = ['abc','def','I use python', 'hong201']
>>> sum([len(word) for word in data])
25
>>> sum(len(word) for word in data)
25

enumerate()是一個同時能讓你迭代和計數(shù)的內置函數(shù),而for循環(huán)自身只能迭代而沒辦法計數(shù):

>>> data = [123,"abc",3.14]
>>> for i in enumerate(data):
...   print i
...
(0, 123)
(1, 'abc')
(2, 3.14)

看完上述內容,你們掌握如何在Python中使用列表推導式的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

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

AI