函数返回中的映射与列表理解

Iva*_*van 2 python matplotlib

简单的问题:

Matplotlib 有一个返回两个值的函数:

locs,label = plt.yticks()
Run Code Online (Sandbox Code Playgroud)

Pylint 抱怨这一行,告诉我“使用内置函数映射”。所以我去了 pylint 网站,发现了这个:http ://pylint-messages.wikidot.com/messages:w0141 所以,我正在尝试使用列表理解来修复这个警告。但正确的形式是什么?

[(locs,label) for plt.yticks()]
Run Code Online (Sandbox Code Playgroud)

不管用。

谢谢!

编辑:我做了一个简单的测试脚本来尝试显示问题,问题是下面的一行:

#!/usr/bin/python

""" docstring """

import matplotlib.pyplot as plt

LOCS, LABEL = plt.yticks()

plt.yticks(LOCS, map(lambda x: "%.2f" % x, LOCS)) # offending line

print(LOCS)
Run Code Online (Sandbox Code Playgroud)

呃,我看错了。如何调整这个 lambda 以实现列表理解?谢谢

Mar*_*cin 5

locs,label = plt.yticks()
Run Code Online (Sandbox Code Playgroud)

是从函数接收两个变量的正确方法。您可以将其作为单个变量接收,并使用元组对象,但这毫无意义。

pylint 可能在抱怨plt.yticks. 除了它超出您的控制之外,通常最好不要使用列表理解而不是map,只是在各种情况下。

在 的情况下plt.yticks(LOCS, map(lambda x: "%.2f" % x, LOCS)),列表推导可能更具可读性,并且可能更快。