【问题标题】:Looping through a range of dates for comparison循环遍历一系列日期以进行比较
【发布时间】:2019-11-16 15:21:31
【问题描述】:

我有一个以这种方式记录支出的清单:

expenditures = [
    (date(2019, 11, 16), 100, 'Transport'),
    (date(2019, 11, 15), 100, 'Transport'),
    (date(2019, 11, 16), 100, 'Transport'),
    (date(2019, 11, 10), 100, 'Transport'),
    ]

在每个元组中是支出日期、金额和支出类型。我需要在指定的日期范围内打印所需的支出类型。例如,我必须只打印包含支出类型“运输”的元组,并且在 11 月 16 日至 15 日的日期范围内。打印指定类型的那些或属于今天的支出我没有问题。但是,我在一系列日期打印时遇到问题。如何只打印符合我指定日期范围的条目?

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    您可以尝试遍历它们并与您预先设置的开始日期和结束日期进行比较:

    from datetime import date
    
    expenditures = [(date(2019, 11, 16), 100, 'Transport'), (date(2019, 11, 15), 100, 'Transport'), (date(2019, 11, 16), 100, 'Transport'), (date(2019, 11, 10), 100, 'Transport')]
    
    start = date(2019, 11, 15)
    end = date(2019, 11, 16)
    
    for expenditure in expenditures:
        if end >= expenditure[0] >= start:
            print(expenditure)
    

    【讨论】:

    • 感谢您的帮助!不知道为什么我没有考虑您的方法并且尝试使用 For 循环的解决方案过于复杂,您的方法更简单
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多