回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我是一个python新手,但我正在尝试遍历下面的dict列表:</p>
<pre><code>MonthEngList = [{'MonthNumber': 1, 'MonthName': 'January'},
{'MonthNumber': 2, 'MonthName': 'February'}, {'MonthNumber': 3, 'MonthName': 'March'},
{'MonthNumber': 4, 'MonthName': 'April'}, {'MonthNumber': 5, 'MonthName': 'May'},
{'MonthNumber': 6, 'MonthName': 'June'}, {'MonthNumber': 7, 'MonthName': 'July'},
{'MonthNumber': 8, 'MonthName': 'August'}, {'MonthNumber': 9, 'MonthName': 'September'},
{'MonthNumber': 10, 'MonthName': 'October'}, {'MonthNumber': 11, 'MonthName': 'November'},
{'MonthNumber': 12, 'MonthName': 'December'}]
</code></pre>
<p>我用它作为matplotlib中带有ticker的绘图的标签,但是不知怎么的,几个月都被搞得一团糟。
我想我应该用sorted()。。但我似乎不能把我的头围绕着它。你知道吗</p>
<p>以下是我所做的:</p>
<pre><code>import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
fig = plt.figure()
ax = fig.gca()
pos_list_mm = np.arange(1,12)
ax.yaxis.set_major_locator(ticker.FixedLocator((pos_list_mm)))
ax.yaxis.set_major_formatter( ticker.FixedFormatter(
sorted(MonthEngList,key=MonthEngList('MonthName') ) ) )
plt.show()
plt.draw()
</code></pre>
<p>屈服:</p>
<pre><code>Traceback (most recent call last):
File "vectorialbox_with_save.py", line 135, in <module>
ax.yaxis.set_major_formatter( ticker.FixedFormatter( sorted(MonthEngList,key=MonthEngList('MonthName') ) ) )
TypeError: 'list' object is not callable
</code></pre>
<p>关于如何正确地做这件事有什么提示吗?你知道吗</p>