第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Python中迭代一系列日期

在Python中迭代一系列日期

慕桂英3389331 2019-07-03 13:50:50
在Python中迭代一系列日期我有下面的代碼來完成這個任務,但是如何才能做得更好呢?現(xiàn)在,我認為它比嵌套循環(huán)更好,但是當您在列表理解中有一個生成器時,它就開始得到Perl-一行代碼。day_count = (end_date - start_date).days + 1for single_date in [d for d in (start_date + timedelta(n) for n in range(day_count))  if d <= end_date]:     print strftime("%Y-%m-%d", single_date.timetuple())注記我不是用這個來打印的。那只是為了演示。這個start_date和end_date變量是datetime.date對象,因為我不需要時間戳。(它們將用于生成報告)。樣本輸出開始日期2009-05-30和結束日期2009-06-09:2009-05-302009-05-312009-06-012009-06-022009-06-032009-06-042009-06-052009-06-062009-06-072009-06-082009-06-09
查看完整描述

5 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

為什么有兩個嵌套迭代?對我來說,它只使用一個迭代生成相同的數(shù)據(jù)列表:

for single_date in (start_date + timedelta(n) for n in range(day_count)):
    print ...

沒有列表被存儲,只有一個生成器被迭代。此外,生成器中的“if”似乎沒有必要。

畢竟,線性序列只需要一個迭代器,而不是兩個迭代器。

與John Machin討論后的最新情況:

也許最優(yōu)雅的解決方案是使用生成器函數(shù)來完全隱藏/抽象日期范圍內的迭代:

from datetime import timedelta, datedef daterange(start_date, end_date):
    for n in range(int ((end_date - start_date).days)):
        yield start_date + timedelta(n)start_date = date(2013, 1, 1)end_date = date(2015, 6, 2)
        for single_date in daterange(start_date, end_date):
    print single_date.strftime("%Y-%m-%d")

注意:為了與內置的range()函數(shù)此迭代停止。以前到達end_date..因此,對于包含性迭代,請在第二天使用,就像您在range().


查看完整回答
反對 回復 2019-07-03
?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

這一點可能更清楚:

d = start_date
delta = datetime.timedelta(days=1)while d <= end_date:
    print d.strftime("%Y-%m-%d")
    d += delta


查看完整回答
反對 回復 2019-07-03
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

使用dateutil圖書館:

from datetime import datefrom dateutil.rrule import rrule, DAILY

a = date(2009, 5, 30)b = date(2009, 6, 9)for dt in rrule(DAILY, dtstart=a, until=b):
    print dt.strftime("%Y-%m-%d")

這個python庫有許多更高級的特性,有些非常有用,例如relative delta并且被實現(xiàn)為一個很容易包含到項目中的單一文件(模塊)。


查看完整回答
反對 回復 2019-07-03
  • 5 回答
  • 0 關注
  • 782 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號