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

时间:2012-02-21 17:59:56

标签: python matplotlib

简单问题:

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

locs,label = plt.yticks()

Pylint抱怨这条线,告诉我"使用内置功能图"。所以我去了pylint网站找到了这个:http://pylint-messages.wikidot.com/messages:w0141 所以,我试图使用列表理解来修复此警告。但是正确的形式是什么?

[(locs,label) for plt.yticks()]

无效。

谢谢!

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

#!/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)

所以,我正在寻找错误的路线。如何调整这个lambda以列出理解?感谢

1 个答案:

答案 0 :(得分:4)

locs,label = plt.yticks()

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

pylint可能会抱怨plt.yticks。除了它不受你的控制之外,通常一般更可取的是使用列表理解而不是map,只是在各种各样的情况下。

对于plt.yticks(LOCS, map(lambda x: "%.2f" % x, LOCS)),列表理解可能更具可读性,可能更快。