直接参考一个例子,如下:
要求:简单的小练习,实现将一个指定列表中的数值进行转化,对于其中的非负数不作处理,对于负数需要转化为制定的数值,代码如下:
#!usr/bin/env python #encoding:utf-8 from __future__ import division ''' __Author__:沂水寒城 功能:Python实现列表中非负数保留,负数转化为指定的数值 ''' def handle_list_negative_nums(data_list,specificvalue=0): ''' 处理列表中的负数,转化为指定的数值 ''' res_list=[] for one in data_list: if one>=0: res_list.append(one) else: res_list.append(specificvalue) print 'res_list is:',res_list res_list2=map(lambda one: one if one>=0 else specificvalue,data_list) print 'res_list2 is:',res_list2 if __name__ == '__main__': data_list=[1.2,4,5,-9,-0.4,-34,2,3,4,0] handle_list_negative_nums(data_list,specificvalue=0) handle_list_negative_nums(data_list,specificvalue=9)
如上图,用lambda表达式简便了很多,同时由于python中没有C++中那样的三目运算符,在python中可以用lambda表达式代替~