【问题标题】:How to generate month names as list in Python? [duplicate]如何在 Python 中生成月份名称作为列表? [复制]
【发布时间】:2021-06-21 17:10:38
【问题描述】:

我试过用这个,但输出不理想

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

输出: [,,,,,]

【问题讨论】:

  • 你没有在范围块中使用'i'..所以每次循环迭代时附加到 m 的内容都是相同的
  • 你可能只想要像[calendar.month_name[i] for i in range(1, 13)]这样的东西
  • "but the output is not as desired" 当你在这里问的时候,你应该明确地说出想要的输出是什么。这次我们可以猜到了;这并不总是显而易见的。
  • 您将整个 month_name 对象附加了 12 次,但从未引用单个月份。您需要参考软件包文档并遵循您在其中找到的使用示例和规范。 Stack Overflow 无意取代现有的文档和教程。
  • 为什么还要从calendar.month_name 创建一个新列表?只需通过下标直接使用它。使用您的方法,您需要每月将一月份的1 转换为您的列表0m。你确定要这样做吗?

标签: python list


【解决方案1】:

Read the docs,然后照他们说的做,只索引数组:

m = []
import calendar
for i in range(1, 13):
    m.append(calendar.month_name[i]) # month_name is an array
print(m)

使用切片可以更轻松地完成此操作(索引 0 包含一个空字符串,根据文档):

import calendar
m = calendar.month_name[1:]
print(m)

【讨论】:

    【解决方案2】:

    它输出一个数组,所以只需将所有转换为列表 list(calendar.month_name[1:]) - 你有名单。

    【讨论】:

      【解决方案3】:

      month_name 元素就像一个列表。

      你可以给它下标:

      >>> calendar.month_name[3]
      'March'
      

      或者使用list就可以了:

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

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

      这会导致您的代码中出现其他问题。如果您将代码更正为:

      import calendar
      m=[calendar.month_name[i] for i in range(1,12)]
      # or
      m=calendar.month_name[1:]
      

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

      【讨论】:

      • 这不是一个真正的列表,这可能是这里 OP 中的主要混淆点。这是一个calendar._localized_month 对象,可以转换为一个。
      【解决方案4】:

      另一种方法如下:

      m = []
      import calendar
      for month in calendar.month_name:
          m.append(month)
      
      m.pop(0) #remove the empty value
      print(m)
      

      【讨论】:

        猜你喜欢
        • 2012-11-26
        • 1970-01-01
        • 1970-01-01
        • 2017-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-04
        相关资源
        最近更新 更多