直接参考一个例子,如下:

要求:简单的小练习,实现将一个指定列表中的数值进行转化,对于其中的非负数不作处理,对于负数需要转化为制定的数值,代码如下:

#!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表达式代替~

01-05 08:26