對於list,由於她的確非常非常龐雜,在python中應用非常廣泛,所以,雖然已經介紹完畢了基礎內容,這裡還要用一講深入一點點,往往越深入越...
先看下面的例子,這個例子是想得到1到9的每個整數的平方,並且將結果放在list中列印出來
>>> power2 =
>>> for i in range(1,10):
...
>>> 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]
看到這個結果,看官還不驚嘆嗎?這就是python,追求簡潔優雅的python!
其官方文件中有這樣一段描述,道出了list解析的真諦:
還記得前面一講中的那個問題嗎?
找出100以內的能夠被3整除的正整數。我們用的方法是:
aliquot =
for n in range(1,100):
if n%3 == 0:
print aliquot
好了。現在用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!
其實,不僅僅對數字組成的list,所有的都可以如此操作。請在平復了激動的心之後,默默地看下面的**,感悟一下list解析的魅力。
>>> [one.strip() for one in mybag] #去掉元素前後的空格
這是乙個有意思的內建函式,本來我們可以通過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中提供了乙個內建函式enumerate,能夠實現類似的功能
>>> for (i,day) in enumerate(week):
... print day+' is '+str(i)
...
monday is 0
sunday is 1
friday is 2
算是乙個有意思的內建函式了,主要是提供乙個簡單快捷的方法。
官方文件是這麼說的:
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')這樣的東西,這是另外一種資料型別,待後面詳解。 零基礎學Python
零基礎學python 1 1 python是一門指令碼語言 2 python的優勢 1 語法和結構比較簡單,易入門 2 能夠跨平台使用 3 應用範圍廣,設計到作業系統 3d動畫 web 雲計算,企業應用等多方面。3 idle 是乙個python shell,類似於windows的cmd視窗 4 pr...
零基礎學python 一
每次學習語言總是要了解其背景python也不例外。首先python的創始人為 guido van rossum 1989年聖誕節期間,在 阿姆斯特丹 guido為了打發聖誕節的無趣,決心開發乙個新的指令碼 解釋程式 做為abc 語言的一種繼承。看看人家外鬼子程式設計師 哎不得不佩服。他在業餘時間開發...
零基礎學Python筆記
alt n 最遠一條語句 alt p 最近一條語句 tab的兩個作用 1 縮排 2 補足 isinstance str1,str 判斷型別 s為字串 s.isalnum 所有字元都是數字或者字母,為真返回 ture,否則返回 false。s.isalpha 所有字元都是字母,為真返回 ture,否則...