从列表中打印月份名称

时间:2018-10-15 15:04:49

标签: python python-3.x list

我正在尝试从列表中打印month_name,但是正在使用此list来获取calendar module,但是我收到了此错误

  

TypeError:列表索引必须是整数或切片,而不是列表

但是当我将list转换为integer仍然不能解决问题。

如何从月份中打印月份名称。

import calendar


month_value = ["01","02","03","04","05","06","07","08","09","10","11","12"]

print(month_value)

bn = calendar.month_name[month_value]

print(bn)

5 个答案:

答案 0 :(得分:1)

使用列表推导来创建新的月份名称列表。 month_name期望一个整数值将其解析为月份名称,您正在传递整个列表,或者可能是列表的一部分。

import calendar
month_value = [1,2,3,4,5,6,7,8,9,10,11,12]  
print(month_value)

bn = [calendar.month_name[i] for i in month_value]

print(bn)

输出:

['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']

或者您只需要name_list然后使用range(1,13)

bn = [calendar.month_name[i] for i in range(1,13)]

或仅使用切片

bn = calendar.month_name[1:13]

答案 1 :(得分:0)

您必须遍历month_value数组。 (例如,使用for循环或嵌入式)

import calendar

month_value = [1,2,3,4,5,6,7,8,9,10,11,12]
print(month_value)

bn = []
for month in month_value:
    bn.append(calendar.month_name[month])

print(bn)

输出:

['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']

答案 2 :(得分:0)

方法month_name接收一个整数,而不是您所接受的列表。

如果您想打印所有月份的名称,我建议:

import calendar
month_value = [1,2,3,4,5,6,7,8,9,10,11,12]
for month_number in month_value:
    print(calendar.month_name[month_number]) 

答案 3 :(得分:0)

您可以通过以下方式之一进行呼叫:

import calendar

print(calendar.month_name[6:9])   # ['June', 'July', 'August']
print(calendar.month_name[3])     # 'March'

# this is the list of month names:
bn = calendar.month_name[1:13]

请参见calendar documentation

该参数可以是索引或切片。您正在将整个列表传递给它...

答案 4 :(得分:-2)

在bash中,脚本编写是这样的:

 echo "Write a number from 1 - 12: "
    read "$month"
    case ("$month$") in 
    1) echo "January";;
    2) echo "February";;
    3) echo "March";;
    ...
    12) echo "December";;
    *) echo "Invalid number."
       exit 1;;
    exit 0`