lambdas在Python中非常有用的示例

xra*_*alf 4 python lambda functional-programming

我遇到了lambda表达式Python.我已经看到很多简单的例子(包括关于SE的例子),其中lambda表达式产生的函数就像任何东西的加法器,但我还看不到它们的实际用处,例如,写一些相同的代码安静会很痛苦的例子没有lambdas.

你能用文本处理显示一些你会使用lambda表达式的东西吗?很难避免使用lambda表达式吗?但是实用的东西(不是数学游戏).

bpg*_*rgo 5

在这种情况下,将所有lambda表达式写为单独的函数会很痛苦.

这段代码简单地做了什么?将自定义excel表转换为自定义数据库表的insert语句.excel表字段和数据库字段之间存在映射,并且excel表字段和要在excel表值上应用的函数之间存在映射,然后才能将其插入到db中.您真的不想为每个字段定义单独的函数.

map_func = { 'ID' : lambda x : 'mig_farm_seq.nextval',
             'ENTERPRISE_NAME' : wrap_str,
             'TAX_NUMBER' : wrap_str,
             'FAMILY_NAME' : lambda x : wrap_str(x.split()[0]),
             'GIVEN_NAME' : lambda x : wrap_str(x.split()[1]),
             'ENTERPRISE_REGISTRATION_NUMBER' : wrap_str,
             'PREMISE_NAME' : wrap_str,
             'HOUSE_ID' : wrap_str,
             'POSTAL_CODE' : wrap_str,
             'PHONE_NUMBER_1' : lambda x : wrap_str(get_phone_number(x, True)),
             'PHONE_NUMBER_2' : lambda x : wrap_str(get_phone_number(x, False)),
             'FAX_NUMBER' : lambda x : wrap_str(x.replace(' ', '')),
             'BANK_IDENTIFIER' : lambda x : wrap_str(x.replace(' ', '').replace('-', '')[:3]),
             'BANK_ACCOUNT_NUMBER' : lambda x : wrap_str(x.replace(' ', '').replace('-', '')),
             'NUMBER_OF_EMPLOYEES' : wrap_null,
             'SETTLEMENT_NUMBER' : wrap_null,
             'REGISTRATION_NUMBER' : lambda x : insert_reg_number % x,
             'GENDER' : wrap_str,
             'ACTIVITY' : lambda x : '0',
             'REG_HOLDER_ACTIVITY' : lambda x : '0',
             'PROCESSED_BY_JOB' : lambda x : '0'
         }
Run Code Online (Sandbox Code Playgroud)

来源:http://pastebin.com/MxEPBMaZ