欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2014年09月20日 16:26:05   投稿:hebedich  
對于list,由于她的確非常非常龐雜,在python中應(yīng)用非常廣泛,所以,雖然已經(jīng)介紹完畢了基礎(chǔ)內(nèi)容,這里還要用一講深入一點點,往往越深入越...

list解析

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

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

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

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

看到這個結(jié)果,看官還不驚嘆嗎?這就是python,追求簡潔優(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.

還記得前面一講中的那個問題嗎?

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

aliquot = []

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

print aliquot

好了?,F(xiàn)在用list解析重寫,會是這樣的:

>>> 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]

震撼了。絕對牛X!

其實,不僅僅對數(shù)字組成的list,所有的都可以如此操作。請在平復(fù)了激動的心之后,默默地看下面的代碼,感悟一下list解析的魅力。

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

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

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

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

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

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

官方文檔是這么說的:

復(fù)制代碼 代碼如下:

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:

順便抄錄幾個例子,供看官欣賞,最好實驗一下。

>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

在這里有類似(0,'Spring')這樣的東西,這是另外一種數(shù)據(jù)類型,待后面詳解。

相關(guān)文章

  • Python文件基本操作實用指南

    Python文件基本操作實用指南

    這篇文章主要給大家介紹了Python文件基本操作的相關(guān)資料,其中包括打開文件的方式、按行讀取文件內(nèi)容、復(fù)制文件、重命名文件等操作需要的朋友可以參考下
    2021-05-05
  • python從zip中刪除指定后綴文件(推薦)

    python從zip中刪除指定后綴文件(推薦)

    這篇文章給大家介紹了python從zip中刪除指定后綴文件,然后再自動壓縮,本文給大家提供了源碼參考,感興趣的朋友跟隨小編一起看看吧
    2019-12-12
  • opencv+python實現(xiàn)均值濾波

    opencv+python實現(xiàn)均值濾波

    這篇文章主要為大家詳細(xì)介紹了opencv+python實現(xiàn)均值濾波,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Python簡單實現(xiàn)Base64編碼和解碼的方法

    Python簡單實現(xiàn)Base64編碼和解碼的方法

    這篇文章主要介紹了Python簡單實現(xiàn)Base64編碼和解碼的方法,結(jié)合具體實例形式分析了Python實現(xiàn)base64編碼解碼相關(guān)函數(shù)與使用技巧,需要的朋友可以參考下
    2017-04-04
  • python實現(xiàn)動態(tài)GIF英數(shù)驗證碼識別示例

    python實現(xiàn)動態(tài)GIF英數(shù)驗證碼識別示例

    這篇文章主要為大家介紹了python實現(xiàn)動態(tài)GIF英數(shù)驗證碼識別示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Python自動化測試筆試面試題精選

    Python自動化測試筆試面試題精選

    在本篇文章里小編給大家整理的是一篇關(guān)于Python自動化測試筆試面試時常見的編程題,需要的朋友們可以學(xué)習(xí)參考下。
    2020-03-03
  • 基于python二叉樹的構(gòu)造和打印例子

    基于python二叉樹的構(gòu)造和打印例子

    今天小編就為大家分享一篇基于python二叉樹的構(gòu)造和打印例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python+django快速實現(xiàn)文件上傳

    python+django快速實現(xiàn)文件上傳

    本篇文章主要介紹了django快速實現(xiàn)文件上傳,通過django web框架來實現(xiàn)一些簡單的功能,有需要的可以了解一下。
    2016-10-10
  • Python關(guān)于__name__屬性的含義和作用詳解

    Python關(guān)于__name__屬性的含義和作用詳解

    在本篇文章里小編給大家分享的是關(guān)于Python關(guān)于__name__屬性的含義和作用知識點,需要的朋友們可以參考下。
    2020-02-02
  • python讀取相對路徑和絕對路徑的方法

    python讀取相對路徑和絕對路徑的方法

    這篇文章主要介紹了python讀取相對路徑和絕對路徑,下面的路徑介紹針對windows,在編寫的py文件中打開文件的時候經(jīng)常見到下面其中路徑的表達(dá)方式,需要的朋友可以參考下
    2023-02-02

最新評論