python 数据结构 list(3)
生活随笔
收集整理的這篇文章主要介紹了
python 数据结构 list(3)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
list解析
先看下面的例子,這個例子是想得到1到9的每個整數的平方,并且將結果放在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]- 找出100以內的能夠被3整除的正整數。
我們用的方法是:
aliquot = []for n in range(1,100):if n%3 == 0:aliquot.append(n)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]另一個:
>>> print range(3,100,3) [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]其實,不僅僅對數字組成的list,所有的都可以如此操作。
>>> mybag = [' glass',' apple','green leaf '] #有的前面有空格,有的后面有空格 >>> [one.strip() for one in mybag] #去掉元素前后的空格 ['glass', 'apple', 'green leaf']enumerate
這是一個有意思的內置函數,本來我們可以通過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 2python中提供了一個內置函數enumerate,能夠實現類似的功能
>>> for (i,day) in enumerate(week): ... print day+' is '+str(i) ... monday is 0 sunday is 1 friday is 2實驗:
>>> 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’)這樣的東西,這是另外一種數據類型,待后面詳解。
下面將enumerate函數和list解析聯合起來,同時顯示,在進行list解析的時候,也可以包含進函數
>>> def treatment(pos, element): ... return "%d: %s"%(pos,element) ... >>> seq = ["hiekay","hiekay.github.io","python"] >>> [ treatment(i, ele) for i,ele in enumerate(seq) ] ['0: hiekay', '1: hiekay.github.io', '2: python']函數lambda:
例如:
g = lambda x:x+1ambda作為一個表達式,定義了一個匿名函數,上例的代碼x為入口參數,x+1為函數體,用函數來表示為:
def g(x):return x+1 >>> seq = ["hiekay","hiekay.github.io","python"] >>> foo = lambda i,ele:"%d:%s"%(i,ele) #lambda函數,給代碼帶來了簡介 >>> [foo(i,ele) for i,ele in enumerate(seq)] ['0:hiekay', '1:hiekay.github.io', '2:python']總結
以上是生活随笔為你收集整理的python 数据结构 list(3)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019年的学习计划
- 下一篇: 使用JS获取客户端的IP地址