国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python列表推導式與生成器表達式用法示例

2020-01-04 15:55:14
字體:
來源:轉載
供稿:網友

本文實例講述了Python列表推導式與生成器表達式用法。分享給大家供大家參考,具體如下:

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

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

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

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

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

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

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

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

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

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

希望本文所述對大家Python程序設計有所幫助。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昭觉县| 成都市| 绥化市| 韶关市| 博白县| 陈巴尔虎旗| 夹江县| 达孜县| 鸡西市| 台北市| 建水县| 江西省| 象州县| 宾阳县| 海口市| 巩留县| 璧山县| 邛崃市| 商河县| 太和县| 彰武县| 藁城市| 廊坊市| 桂平市| 通河县| 韩城市| 巴彦淖尔市| 同德县| 安福县| 米易县| 临沧市| 平陆县| 罗源县| 云和县| 沈丘县| 汝阳县| 麻城市| 顺义区| 云南省| 福清市| 莫力|