成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[零基礎學Python]再深點,更懂list

mdluo / 2861人閱讀

摘要:有的前面有空格,有的后面有空格去掉元素前后的空格這是一個有意思的內(nèi)置函數(shù),本來我們可以通過的方式得到一個的每個元素編號,然后在用的方式得到該元素。

對于list,由于她的確非常非常龐雜,在python中應用非常廣泛,所以,雖然已經(jīng)介紹完畢了基礎內(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,所有的都可以如此操作。請在平復了激動的心之后,默默地看下面的代碼,感悟一下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ù)了,主要是提供一個簡單快捷的方法。

官方文檔是這么說的:

  

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ù)類型,待后面詳解。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/45288.html

相關(guān)文章

  • [基礎Python]正規(guī)地說一句話

    摘要:語句,遍列列表字符串字典集合等迭代器,依次處理迭代器中的每個元素。與配合使用處理在程序運行中出現(xiàn)的異常情況。表示此行為空,不運行任何操作。在迭代器函數(shù)內(nèi)使用,用于返回一個元素。恭請到上瀏覽及時更新的教程零基礎學 小孩子剛剛開始學說話的時候,常常是一個字一個字地開始學,比如學說餃子,對他/她來講,似乎有點難度,大人也聰明,于是就簡化了,用餃餃來代替,其實就是讓孩子學會一個字就能表達。當然...

    Freeman 評論0 收藏0
  • [基礎python]關(guān)于循環(huán)的小伎倆

    摘要:不管是還是,所發(fā)起的循環(huán),在編程中是經(jīng)常被用到的。這里重點是復習并展示一下它的循環(huán)中,做為計數(shù)器的使用。通過上述實例,主要是讓看官理解在循環(huán)中計數(shù)器的作用。是用于并行遍歷的函數(shù)。一種方法是通過循環(huán),分別從兩個中取出元素,然后求和。 不管是while還是for,所發(fā)起的循環(huán),在python編程中是經(jīng)常被用到的。特別是for,一般認為,它要比while快,而且也容易寫(是否容易,可能因人而...

    李世贊 評論0 收藏0
  • [基礎Python]有點簡約的元組

    摘要:關(guān)于元組,上一講中涉及到了這個名詞。元組是用圓括號括起來的,其中的元素之間用逗號隔開。使用而不是如同擁有一個隱含的語句,說明這一數(shù)據(jù)是常量。必須是不可變的。只有字符串整數(shù)或其它對安全的才可以用作。 關(guān)于元組,上一講中涉及到了這個名詞。本講完整地講述它。 先看一個例子: >>>#變量引用str >>> s = abc >>> s abc >>>#如果這樣寫,就會是... >>> t...

    leap_frog 評論0 收藏0
  • [基礎python]有容乃大的list(2)

    摘要:對的操作合并有容乃大的中,對的操作提到了,也就是將某個元素追加到已知的一個后邊。如果的對象是數(shù)值型,則報錯。依然是上一條官方解釋是不是說的非常清楚明白了先到這里,下講還繼續(xù)有容乃大的 對list的操作 合并list 《有容乃大的list(1)》中,對list的操作提到了list.append(x),也就是將某個元素x 追加到已知的一個list后邊。 除了將元素追加到list中,還...

    阿羅 評論0 收藏0
  • [基礎python]復習if語句

    摘要:在學習語句的時候,對編程的基礎知識了解的還不是很多,或許沒有做什么太復雜的東西??梢酝ㄟ^一個內(nèi)置函數(shù)來判斷一個條件的結(jié)果還是。有朋友需要看完整教程內(nèi)容,請點擊零基礎學,這里會及時更新,并且有完整的目錄結(jié)構(gòu),更吸納了朋友們提出的意見和建議。 看官是否記得,在上一部分的時候,有一講專門介紹if語句的:從if開始語句的征程。在學習if語句的時候,對python編程的基礎知識了解的還不是很多,...

    array_huang 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<