python简单问题,如何使用lambda或其它方法,把代码在一行内完成

yuanyingtanxi 2010-07-19 04:23:28
简单问题
dmdict是一个字典,里面有以aline为键的值

一般情况是这样
sql="insert into tb_test (xh,name1,name2,dm1,dm2) values (%d,'%s','%s','%s','%s')" % (9999,aline[0],aline[1],dmdict[aline[0]],dmdict[aline[1]])
但是有可能字dmdict中没有aline[0]或aline[1]这个键,这样就会发生错误
想要表达成
g=lambda x : if x in dmdict return dmdict[x] else return ''
(注:这个lambda是错的)

sql="insert into tb_test (xh,name1,name2,dm1,dm2) values (%d,'%s','%s','%s','%s')" % (9999,aline[0],aline[1],g(aline[0),g([aline[1]))

想要达到这种效果,应该如何写代码呢??

...全文
123 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanyingtanxi 2010-07-20
  • 打赏
  • 举报
回复
楼上的兄弟,只是简单的把return去掉也不行
delphiwcdj 2010-07-19
  • 打赏
  • 举报
回复
lambda返回后面的表达式,不需要写return语句
yuanyingtanxi 2010-07-19
  • 打赏
  • 举报
回复
搞定
g = lambda x : dmdict[x] if (x in dmdict) else ''

sql="insert into tb_test (xh,name1,name2,dm1,dm2) values (%d,'%s','%s','%s','%s')" % (9999,aline[0],aline[1],g(aline[0),g([aline[1]))
yuanyingtanxi 2010-07-19
  • 打赏
  • 举报
回复
我的描述是否清楚,如果有疑问请回复 

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧