Posted on 2007-08-15 00:07
ZelluX 閱讀(401)
評論(0) 編輯 收藏 所屬分類:
Scripting
1. 交換x和y的值 [x, y] = [y, x]
2. zip()方法把幾個(gè)lists的第i個(gè)元素合成一個(gè)tuple,放在一個(gè)新的list中。
zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]
函數(shù)式編程相關(guān)
1. Mapping
map() 方法對序列中的每個(gè)元素調(diào)用某個(gè)函數(shù),返回新生成的結(jié)果序列。
有點(diǎn)類似于Ruby的Array.each do | element |
>>> z = map(len, ["abc", "clounds", "rain"])
>>> z
[3, 6, 4]
2. Filtering
過濾掉滿足條件的元素,類似與Array.reject do | element |
>>> x = [5,12,-2,13]
>>> y = filter(lambda z: z > 0, x)
>>> y
[5, 12, 13]
3. List Comprehension
來個(gè)復(fù)雜的例子
>>> y
[[0, 2, 22], [1, 5, 12], [2, 3, 33]]
>>> [a for b in y for a in b[1:]]
[2, 22, 5, 12, 3, 33]
4. Reduction
先看示例
>>> x = reduce(lambda x,y: x+y, range(5))
>>> x
10
執(zhí)行的順序是:首先調(diào)用函數(shù)處理range(5)前兩個(gè)值,0 + 1 = 1,然后返回的值1作為x,繼續(xù)與range(5)的第三個(gè)值(2,作為y)。
最后的結(jié)果是0+1+2+3+4的值
這個(gè)常用來代替for循環(huán)