如何在Python中打印calendar.month_name数组?

4
我有以下代码:
import calendar
month=calendar.month_name   
print(month)

我希望得到以下形式的输出,以数组或列表的形式呈现: ['一月', '二月',...,'十二月'] 但上述代码没有返回任何内容。
有人能指出我的错误吗?
3个回答

9
它返回的实际上是一个数组对象。如果你想将它转换成列表,可以在其上调用list()
>>> import calendar
>>> calendar.month_name
<calendar._localized_month instance at 0x10e0b2830>
>>> list(calendar.month_name)
['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']

默认情况下,列表的第一个元素为空字符串,以便可以从1而不是0进行索引。如果您想在将其转换为列表的同时删除它,只需调用calendar.month_name[1:]


根据您的代码,实际上可能并不需要进行此操作。数组对象将具有与任何列表相同的属性:
>>> for month in calendar.month_name[1:]:
...     print month
... 
January
February
March
April
May
June
July
August
September
October
November
December

如果你想要删除第0个索引,那么你只需要使用cal.month_name[1:],这样就可以省略list()函数调用了,因为在list(calendar.month_name[1:])中它是多余的。 - Muhammad Hamza

2
>>>import calendar
>>>months = [x for x in calendar.month_name if x]
>>>print(months)
['January',
 'February',
 'March',
 'April',
 'May',
 'June',
 'July',
 'August',
 'September',
 'October',
 'November',
 'December']

0

使用filter获取非空字符串:

import calendar
months = filter(None, calendar.month_name)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接