如何在Python中生成月份名称作为列表?

Shi*_*ari 7 python list

我尝试过使用它,但输出不符合预期

m = []
import calendar
for i in range(1, 13):
    m.append(calendar.month_name)
print(m)
Run Code Online (Sandbox Code Playgroud)

输出:[<calendar._localized_month 对象位于 0x7f901a7013d0>、<calendar._localized_month 对象位于 0x7f901a7013d0>、<calendar._localized_month 对象位于 0x7f901a7013d0>、<calendar._localized_month 对象位于 0x7f901a7013d0>、<calendar._localized_month 对象位于 0x7f901a7013d0>。 _localized_month 对象位于 0x7f901a7013d0>,<日历._localized_month 对象位于 0x7f901a7013d0>、<calendar._localized_month 对象位于 0x7f901a7013d0>、<calendar._localized_month 对象位于 0x7f901a7013d0>、<calendar._localized_month 对象位于 0x7f901a7013d0>、<calendar._localized_month 对象位于 0x7f901a7013d0>,<calendar._localized_month 对象位于 0x7f901a7013d0 >, <calendar._localized_month 对象位于 0x7f901a7013d0>]

daw*_*awg 17

month_name元素的作用类似于列表。

您可以为其添加下标:

>>> calendar.month_name[3]
'March'
Run Code Online (Sandbox Code Playgroud)

或者使用list它:

>>> import calendar
>>> list(calendar.month_name)
['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
Run Code Online (Sandbox Code Playgroud)

请注意索引 0 处的空白。没有零月份...

这导致了代码中的另一个问题。如果您将代码更正为:

import calendar
m=[calendar.month_name[i] for i in range(1,13)]
# or
m=calendar.month_name[1:]
Run Code Online (Sandbox Code Playgroud)

无论哪种情况,您现在都已变成'January'元素 0 而不是元素 1。您将需要隐藏每个日期。

  • 这并不是一个真正的列表,这可能是 OP 中的主要混淆点。它是一个 `calendar._localized_month` 对象,可以转换为一个。 (2认同)