這裏有一些似乎有點愚蠢:datetime.strptime()
很高興接受月份名稱的迭代列表,當我只是手工創建一個列表(months = ['January','February']
)但不是當我遍歷由calendar.month_name
創建月份列表,即使都返回<type 'str'>
迭代的calendar.month_name不能被strptime解析()
斷碼:
import datetime
import calendar
for month in calendar.month_name:
print datetime.datetime.strptime(month,"%B")
錯誤: ValueError: time data '' does not match format '%B'
工作代碼:
import datetime
months = ['January','February','March']
for month in months:
print datetime.datetime.strptime(month,"%B")
結果:
1900-01-01 00:00:00
1900-02-01 00:00:00
1900-03-01 00:00:00
這是怎麼回事?這是python的for
循環的行爲,我不熟悉?
感謝您指出我在正確的方向!它看起來像循環開始的索引1('月份在calendar.month_name [1:]:')也適用。那很棒! – 2012-07-26 18:33:09
@ wire42 - 是的,我也意識到這一點(經過一些實驗)。文檔使用術語'array',這對於返回類型有點含糊不清。但是,這似乎是可切片(至少在CPython的) – mgilson 2012-07-26 18:34:36