- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
所以我尝试使用 Python calendar
API 来循环一年中的几个月。假设当前月份是一月(月份“1”)。如果我执行 calendar.month_name[1-1]
(一月之前的一个月),我得到的结果是一个空字符串 ""
- 似乎是因为月份“0”没有'存在。但是,如果我执行 calendar.month_name[1-2]
,生成的 -1
值将导致返回 December
。
所以我的问题是如何获取 0
的 month_name[]
参数以返回它之前的月份?
最佳答案
一种方法是使用列表理解将月份存储在新变量中
months = [month for month in calendar.month_name if month]
从这里你应该可以看到
>>> months[0]
January
>>> months[11]
December
>>> months[-1]
December
编辑 1:作为对您评论的答复,您可以使用库 itertools
。
import calendar
from itertools import cycle
months = [month for month in calendar.month_name if month]
pool = cycle(months[::-1]) # creating a cyclic pool of the reverse list
for month in pool:
print(month)
输出:
December
November
October
September
August
July
June
May
April
March
February
January
December
November
October
September
August
July
June
May
April
March
February
January
June
May
April
December
November
October
September
August
July
June
May
April
...
编辑 2:
一个更简单的方法可能是重新计算你的索引,就像这样
import calendar
months = [month for month in calendar.month_name if month]
old_index = -4003
new_index = old_index % len(months)
print(new_index, months[new_index])
输出:
5 June
关于Python calendar.month_name 如何跳过 0-index,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47059165/
在 K&R 5.8 节中,有一个使用内部静态字符指针数组的函数 month_name(),并特别提到这是“内部静态数组的理想应用程序”。函数如下: /* month_name: return name
这里有些东西看起来有点傻:datetime.strptime()当我只是手动创建一个列表( months = ['January','February'] )时很高兴接受月份名称的迭代列表,但当我迭代
所以我尝试使用 Python calendar API 来循环一年中的几个月。假设当前月份是一月(月份“1”)。如果我执行 calendar.month_name[1-1](一月之前的一个月),我得到
我有以下代码: import calendar month=calendar.month_name print(month) 我希望得到以下数组形式或列表形式的输出: ['一月','二月',...
我是一名优秀的程序员,十分优秀!