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

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

如何根據(jù)開始和結(jié)束獲取for循環(huán)中的日期列表?

如何根據(jù)開始和結(jié)束獲取for循環(huán)中的日期列表?

白衣非少年 2023-04-25 16:05:14
我想使用 for 循環(huán)獲取開始日期和結(jié)束日期之間范圍的唯一 yyyy-mm-01 列表。這是我的代碼:import datetimefrom datetime import timedelta, datestart=date(2017,4,1)end=(datetime.date.today().replace(day=1)) - datetime.timedelta(days=1) #last completed monthdef daterange(start, end):    for n in range(int((end - start).days)):        yield start + timedelta(n)for single_date in daterange(start, end):    myset = str(single_date.strftime("%Y-%m-01"))    print(myset)The issue is that my result looks like this:2017-04-012017-04-012017-04-012017-04-012017-04-012017-04-012017-04-012017-04-012017-04-012017-04-012017-04-012017-04-012017-04-012017-04-012017-04-012017-04-012017-04-012017-04-012017-04-012017-04-012017-04-012017-04-012017-04-012017-04-012017-05-01我嘗試添加 set() 但它仍然顯示冗余日期。我該如何解決?
查看完整描述

4 回答

?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗 獲得超5個贊

dates = set()

for single_date in daterange(start, end):

    dates.add(single_date.strftime("%Y-%m-01"))


print(sorted(list(dates)))


查看完整回答
反對 回復(fù) 2023-04-25
?
夢里花落0921

TA貢獻(xiàn)1772條經(jīng)驗 獲得超6個贊

import datetime

from datetime import timedelta, date

from dateutil.relativedelta import relativedelta


start=date(2017,4,1)

end=(datetime.date.today().replace(day=1)) - datetime.timedelta(days=1) #last completed month


lst = []

current_date = start

while current_date < end:

    current_date = current_date.replace(day=1) + relativedelta(months=1)

    lst.append(current_date)


print(lst)


查看完整回答
反對 回復(fù) 2023-04-25
?
牧羊人nacy

TA貢獻(xiàn)1862條經(jīng)驗 獲得超7個贊

問題是你實(shí)際上并沒有使用你的集合來檢查你之前是否見過一個日期:


myset = set()

for single_date in daterange(start, end):

    mydate = str(single_date.strftime("%Y-%m-01"))

    if mydate not in myset:

        print(mydate)

        myset.add(mydate)


查看完整回答
反對 回復(fù) 2023-04-25
?
慕斯709654

TA貢獻(xiàn)1840條經(jīng)驗 獲得超5個贊

我強(qiáng)烈建議您使用dateutils模塊來獲取這樣的重復(fù)日期。您可以使用cmd安裝它pip install python-dateutil


>>> from dateutil.rrule import rrule, MONTHLY

>>>

>>> start=date(2017,4,1)

>>> end=(datetime.date.today().replace(day=1)) - datetime.timedelta(days=1)

>>> res = list(d.strftime("%Y-%m-%d") for d in rrule(dtstart=start, until=end, freq=MONTHLY))

>>> pprint(res)

['2017-04-01',

 '2017-05-01',

 '2017-06-01',

 '2017-07-01',

 '2017-08-01',

 '2017-09-01',

 '2017-10-01',

 '2017-11-01',

 '2017-12-01',

 '2018-01-01',

 '2018-02-01',

 '2018-03-01',

 '2018-04-01',

 '2018-05-01',

 '2018-06-01',

 '2018-07-01',

 '2018-08-01',

 '2018-09-01',

 '2018-10-01',

 '2018-11-01',

 '2018-12-01',

 '2019-01-01',

 '2019-02-01',

 '2019-03-01',

 '2019-04-01',

 '2019-05-01',

 '2019-06-01',

 '2019-07-01',

 '2019-08-01',

 '2019-09-01',

 '2019-10-01',

 '2019-11-01',

 '2019-12-01',

 '2020-01-01',

 '2020-02-01',

 '2020-03-01',

 '2020-04-01',

 '2020-05-01',

 '2020-06-01',

 '2020-07-01']


查看完整回答
反對 回復(fù) 2023-04-25
  • 4 回答
  • 0 關(guān)注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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