日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转载]列表生成式

發(fā)布時間:2025/3/19 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转载]列表生成式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

列表生成式即List Comprehensions,是Python內(nèi)置的非常簡單卻強(qiáng)大的可以用來創(chuàng)建list的生成式。

舉個例子,要生成list?[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)):

>>> list(range(1, 11)) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

但如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?方法一是循環(huán):

>>> L = [] >>> for x in range(1, 11): ... L.append(x * x) ... >>> L [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

但是循環(huán)太繁瑣,而列表生成式則可以用一行語句代替循環(huán)生成上面的list:

>>> [x * x for x in range(1, 11)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

寫列表生成式時,把要生成的元素x * x放到前面,后面跟for循環(huán),就可以把list創(chuàng)建出來,十分有用,多寫幾次,很快就可以熟悉這種語法。

for循環(huán)后面還可以加上if判斷,這樣我們就可以篩選出僅偶數(shù)的平方:

>>> [x * x for x in range(1, 11) if x % 2 == 0] [4, 16, 36, 64, 100]

還可以使用兩層循環(huán),可以生成全排列:

>>> [m + n for m in 'ABC' for n in 'XYZ'] ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

三層和三層以上的循環(huán)就很少用到了。

運(yùn)用列表生成式,可以寫出非常簡潔的代碼。例如,列出當(dāng)前目錄下的所有文件和目錄名,可以通過一行代碼實現(xiàn):

>>> import os # 導(dǎo)入os模塊,模塊的概念后面講到 >>> [d for d in os.listdir('.')] # os.listdir可以列出文件和目錄 ['.emacs.d', '.ssh', '.Trash', 'Adlm', 'Applications', 'Desktop', 'Documents', 'Downloads', 'Library', 'Movies', 'Music', 'Pictures', 'Public', 'VirtualBox VMs', 'Workspace', 'XCode']

for循環(huán)其實可以同時使用兩個甚至多個變量,比如dict的items()可以同時迭代key和value:

>>> d = {'x': 'A', 'y': 'B', 'z': 'C' } >>> for k, v in d.items(): ... print(k, '=', v) ... y = B x = A z = C

因此,列表生成式也可以使用兩個變量來生成list:

>>> d = {'x': 'A', 'y': 'B', 'z': 'C' } >>> [k + '=' + v for k, v in d.items()] ['y=B', 'x=A', 'z=C']

最后把一個list中所有的字符串變成小寫:

>>> L = ['Hello', 'World', 'IBM', 'Apple'] >>> [s.lower() for s in L] ['hello', 'world', 'ibm', 'apple']

練習(xí)

如果list中既包含字符串,又包含整數(shù),由于非字符串類型沒有l(wèi)ower()方法,所以列表生成式會報錯:

>>> L = ['Hello', 'World', 18, 'Apple', None] >>> [s.lower() for s in L] Traceback (most recent call last):File "<stdin>", line 1, in <module> File "<stdin>", line 1, in <listcomp> AttributeError: 'int' object has no attribute 'lower'

使用內(nèi)建的isinstance函數(shù)可以判斷一個變量是不是字符串:

>>> x = 'abc' >>> y = 123 >>> isinstance(x, str) True >>> isinstance(y, str) False

?

小結(jié)

運(yùn)用列表生成式,可以快速生成list,可以通過一個list推導(dǎo)出另一個list,而代碼卻十分簡潔。

參考源碼

do_listcompr.py

感覺本站內(nèi)容不錯,讀后有

轉(zhuǎn)載于:https://www.cnblogs.com/conanwang/p/5813703.html

總結(jié)

以上是生活随笔為你收集整理的[转载]列表生成式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲一区二区三区四区在线观看 | 欧美激精品| 色噜噜狠狠一区二区三区 | 精品视频免费 | 欧美一区二区三区久久精品 | 凸凹人妻人人澡人人添 | 久久久久国产精品午夜一区 | 亚洲另类图区 | 97se亚洲综合 | 欧美性潮喷xxxxx免费视频看 | 五月婷婷丁香 | 久婷婷 | 四虎国产视频 | 色丁香久久 | 激情丁香六月 | 波多野结衣在线观看一区二区三区 | 日本精品国产 | 99re久久| 日本不卡影院 | 精品在线视频免费观看 | av片免费看 | 色综合久久精品亚洲国产 | 一区二区三区四区国产精品 | av波多野吉衣 | 欧美综合视频在线 | 亚洲人妻电影一区 | 国产一区二区三区黄 | 久久国产精品系列 | 密乳av| 国产黄色电影 | 懂色av一区二区在线播放 | 国产熟妇另类久久久久 | 中文国产字幕 | 伊人狠狠操 | 四虎国产精品永久在线国在线 | 最近中文在线观看 | 久久福利视频导航 | jizz黄色片 | 一区二区三区四区日韩 | 亚洲一区久久 | a网站在线观看 | 深喉口爆一区二区三区 | 国产精品婷婷午夜在线观看 | 成片免费观看视频大全 | 国产youjizz | 国产v综合v亚洲欧美久久 | 国产精品一二三区在线观看 | 无码人妻精品中文字幕 | 国产99对白在线播放 | 欧美高跟鞋交xxxxxhd | av丝袜在线 | 日韩一区二区免费在线观看 | 波多野结衣亚洲一区二区 | 看片在线| 在线播放日韩av | 久久久久久久久久一区二区 | 久久午夜电影 | 国产中文字幕在线播放 | 污污视频在线观看网站 | 99re8在线精品视频免费播放 | 成人毛片18女人毛片 | 日韩福利一区二区 | av日韩一区 | 狠狠干夜夜骑 | 国产在线999| 亚洲天堂手机版 | 永久av网站 | 亚洲精品综合 | 久久久久久久国产精品 | 国产精品波多野结衣 | 免费观看黄一级视频 | 色站综合 | 国产欧美一区二区三区白浆喷水 | 中文字幕一区二区三区四区 | 黄色视屏在线看 | 黑人大群体交免费视频 | 亚洲在线视频 | 西比尔在线观看完整视频高清 | 一级免费看 | 国产精品久久久久久久无码 | 草草影院最新网址 | 捆绑最紧bdsm视频 | 国产成人精品亚洲日本在线观看 | 成人午夜视频在线 | 爱爱的免费视频 | 欧美精品日韩少妇 | 欧美激情在线观看一区 | 免费成人在线网站 | 操你啦影院 | 动漫美女被到爽流 | 人人人插 | 涩涩网站在线看 | 亚洲av无码一区东京热久久 | 污污网站免费在线观看 | 特黄aaaaaaaaa毛片免 | 亚洲人成久久 | 日韩欧美国产视频 | 亚洲无码高清精品 | 天堂аⅴ在线最新版在线 |