lambda函数返回函数名称

时间:2019-03-18 14:55:48

标签: python lambda

我有一个列表,其中的项目是字典。字典值采用unicode格式,正在尝试将unicode值与字符串进行比较。因此,我尝试了以下lambda函数,期望将unicode转换为字符串;

a=[(lambda x: x.unicode('UTF-8') ) for i in paid_submissions[0].values()]

print(a)
  

[在0x11335db18>,在0x113357d70>,在0x113357b90>,在0x113357a28>,在0x1133b5050>,在0x1133b50c8>]]

1 个答案:

答案 0 :(得分:3)

因为您只是返回了lambda对象,而未对其进行任何调用。如果我了解您要正确执行的操作,则需要像这样调用i上的lambda。

a = [(lambda x: x.unicode('UTF-8'))(i) for i in paid_submissions[0].values()]

但是lambda表达式是浪费。这可以更容易(更有效)地写为

a = [i.unicode('UTF-8') for i in paid_submissions[0].values()]