xra*_*alf 4 python lambda functional-programming
我遇到了lambda表达式Python.我已经看到很多简单的例子(包括关于SE的例子),其中lambda表达式产生的函数就像任何东西的加法器,但我还看不到它们的实际用处,例如,写一些相同的代码安静会很痛苦的例子没有lambdas.
你能用文本处理显示一些你会使用lambda表达式的东西吗?很难避免使用lambda表达式吗?但是实用的东西(不是数学游戏).
在这种情况下,将所有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