简单的问题:
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 以实现列表理解?谢谢
locs,label = plt.yticks()
Run Code Online (Sandbox Code Playgroud)
是从函数接收两个变量的正确方法。您可以将其作为单个变量接收,并使用元组对象,但这毫无意义。
pylint 可能在抱怨plt.yticks. 除了它超出您的控制之外,通常最好不要使用列表理解而不是map,只是在各种情况下。
在 的情况下plt.yticks(LOCS, map(lambda x: "%.2f" % x, LOCS)),列表推导可能更具可读性,并且可能更快。
| 归档时间: |
|
| 查看次数: |
218 次 |
| 最近记录: |