python as lambda fiter的使用
'''
Created on 2013-7-25
@author: tdoly
use filter() and other method
'''
from random import randint
from random import randint as ri
def odd(n):
return n % 2
def former():
allNums = []
for eachNum in range(9):
allNums.append(randint(1, 99))
print filter(odd, allNums)
def refactoring1():
allNums = []
for eachNum in range(9):
allNums.append(randint(1, 99))
print filter(lambda n : n%2, allNums)
def refactoring2():
allNums = []
for eachNum in range(9):
allNums.append(randint(1, 99))
print [n for n in allNums if n%2]
def refactoring3():
print [n for n in [ri(1, 99) for eachNum in range(9)] if n%2]
if __name__ == '__main__':
former()
refactoring1()
refactoring2()
refactoring3()
参考结果:(运行会不一样)
[49, 89, 17, 75, 59]
[55, 79, 87, 71, 67, 9]
[25, 15, 65, 99]
[21, 29, 71, 87, 73, 31]