麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > Python > 正文

跟老齊學(xué)Python之再深點(diǎn),更懂list

2020-02-23 05:50:14
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

list解析

先看下面的例子,這個(gè)例子是想得到1到9的每個(gè)整數(shù)的平方,并且將結(jié)果放在list中打印出來(lái)

>>> power2 = []>>> for i in range(1,10):...   power2.append(i*i)... >>> power2[1, 4, 9, 16, 25, 36, 49, 64, 81]

python有一個(gè)非常有意思的功能,就是list解析,就是這樣的:

>>> squares = [x**2 for x in range(1,10)]>>> squares[1, 4, 9, 16, 25, 36, 49, 64, 81]

看到這個(gè)結(jié)果,看官還不驚嘆嗎?這就是python,追求簡(jiǎn)潔優(yōu)雅的python!

其官方文檔中有這樣一段描述,道出了list解析的真諦:

List comprehensions provide a concise way to create lists. Common applications are to make new lists where each element is the result of some operations applied to each member of another sequence or iterable, or to create a subsequence of those elements that satisfy a certain condition.

還記得前面一講中的那個(gè)問(wèn)題嗎?

找出100以內(nèi)的能夠被3整除的正整數(shù)。
我們用的方法是:

aliquot = []for n in range(1,100):  if n%3 == 0:    aliquot.append(n)print aliquot

好了。現(xiàn)在用list解析重寫,會(huì)是這樣的:

>>> aliquot = [n for n in range(1,100) if n%3==0]>>> aliquot[3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]

震撼了。絕對(duì)牛X!

其實(shí),不僅僅對(duì)數(shù)字組成的list,所有的都可以如此操作。請(qǐng)?jiān)谄綇?fù)了激動(dòng)的心之后,默默地看下面的代碼,感悟一下list解析的魅力。

>>> mybag = [' glass',' apple','green leaf ']  #有的前面有空格,有的后面有空格>>> [one.strip() for one in mybag]       #去掉元素前后的空格['glass', 'apple', 'green leaf']enumerate

這是一個(gè)有意思的內(nèi)置函數(shù),本來(lái)我們可以通過(guò)for i in range(len(list))的方式得到一個(gè)list的每個(gè)元素編號(hào),然后在用list[i]的方式得到該元素。如果要同時(shí)得到元素編號(hào)和元素怎么辦?就是這樣了:

>>> for i in range(len(week)):...   print week[i]+' is '+str(i)   #注意,i是int類型,如果和前面的用+連接,必須是str類型... monday is 0sunday is 1friday is 2

python中提供了一個(gè)內(nèi)置函數(shù)enumerate,能夠?qū)崿F(xiàn)類似的功能

>>> for (i,day) in enumerate(week):...   print day+' is '+str(i)... monday is 0sunday is 1friday is 2

算是一個(gè)有意思的內(nèi)置函數(shù)了,主要是提供一個(gè)簡(jiǎn)單快捷的方法。

官方文檔是這么說(shuō)的:

代碼如下:
Return an enumerate object. sequence must be a sequence, an iterator, or some other object which supports iteration. The next() method of the iterator returned by enumerate() returns a tuple containing a count (from start which defaults to 0) and the values obtained from iterating over sequence:

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 午夜在线视频一区二区三区 | 久久精品视频16 | av在线高清观看 | 小情侣嗯啊哦视频www | 久久小视频 | 成年人网站视频免费 | 色av成人天堂桃色av | 亚洲xxx在线观看 | 国产91在线播放九色 | 成人福利视频在 | 国产欧美日韩在线不卡第一页 | 久久久久久久一区 | 爽毛片 | 思思久而久而蕉人 | free台湾极品性hd | www.国产.com | 国内精品视频饥渴少妇在线播放 | h视频免费看 | 超碰97在线人人 | 中国hd高清xxxxvideo | 欧美一级美片在线观看免费 | 成人午夜视频在线观看免费 | 涩涩激情网 | 久久国产经典 | 国产亚洲精品久久久久婷婷瑜伽 | 欧洲精品视频在线观看 | 久久国产精 | 久久情爱网 | 欧美一区高清 | 一级免费视频 | 精品久久久久久久久久久久久久久久久久久 | 亚洲最大的成人网 | 久草在线综合 | 黑色丝袜美美女被躁视频 | 双性精h调教灌尿打屁股的文案 | 免费一级毛片在线播放不收费 | av电影免费在线看 | 成人毛片视频在线观看 | 美女黄影院 | 欧美日韩手机在线观看 | 国产毛片aaa一区二区三区视频 |