在代码中,我们经常会遇到这样的一个场景:使用某个list作为参数,对于每个参数均做某种操作,将操作结果放置到一个list中,作为返回值,例如下面的代码
def do_something(a):
result = []
for i in a:
result.append(i*i)
return result
if __name__ == '__main__':
a = range(1, 10)
print do_something(a)
使用Python的列表推导式(list comprehension)可以简化这样的代码为一行,如下:
def do_something(a):
return [i*i for i in a]
if __name__ == '__main__':
a = range(1, 10)
print do_something(a)
也可以使用内置函数map与匿名函数lamda,实现同样的效果,如下:
def do_something(a):
return map(lambda i: i*i, a)
if __name__ == '__main__':
a = range(1, 10)
print do_something(a)
从上面的例子中,可以再次看到Python的强大之处,能用一行解决的,绝不用两行