PyLint W0108:Lambda可能不是必需的(不必要的Lambda)

时间:2019-06-04 15:14:04

标签: python python-3.x pylint

pylint针对以下代码返回以下消息:

  

data.py:125:30:W0108:Lambda可能不是   必需的(不必要的lambda)

in_p = ', '.join(list(map(lambda x: "'{}'".format(x), data)))

为什么这里不需要lambda以及如何将其重构?

1 个答案:

答案 0 :(得分:2)

"'{}'".format已经是一个函数;您的lambda表达式定义了一个函数,除了接受参数并将其传递给另一个函数外,该函数什么也不做。你可以简单地写

in_p = ', '.join(list(map("'{}'".format, data)))

有些人可能更喜欢在这里使用列表理解:

in_p = ', '.join(["'{}'".format(x) for x in data])

使用临时变量以提高可读性也可能是值得的。

quote_it = "'{}'".format
in_p = ', '.join(list(map(quote_it, data)))
# in_p = ', '.join([quote_it(x) for x in data])