gpt4 book ai didi

python - 试图将日期列表放入 date.year、date.month、date.day 中进行比较?

转载 作者:行者123 更新时间:2023-11-28 22:40:31 27 4
gpt4 key购买 nike

我有一个列表列表,每个列表中都有整数值,代表 8 年期间的日期。

     dates = [[2014, 11, 14], [2014, 11, 13], ....., [2013, 12, 01].....]

我需要将这些日期与存储在文件中的其他数据进行比较,以便找到每月的平均费用。所以我需要弄清楚如何遍历日期并在月份更改时停止。每个日期都有相应的成本和数量值,我需要这些值才能找到平均值。

所以我试图找到一种方法来制作 x.year、x.month、x.day 格式的日期并按照这种方式进行,但我是 python 的新手并且非常困惑。

如何遍历 8 年期间的所有日期,但停止并计算每个特定月份的数据平均值并存储每个月的平均值?

在此先感谢,希望这是有道理的。

最佳答案

您可以使用字典将年和月保存为键,将列表中的相关日期保存为值,然后您可以对按年和月分类的项目进行任何处理。

>>> dates = [['2014', '11', '14'], ['2014', '10', '13'], ['2014', '10', '01'], ['2014', '12', '01'], ['2013', '12', '01'], ['2013', '12', '09'], ['2013', '10', '01'], ['2013', '10', '05'], ['2013', '04', '01']]
>>> my_dict = {}
>>>
>>> for y,m,d in dates:
... my_dict.setdefault((y,m),[]).append(d)
...
>>> my_dict
{('2013', '10'): ['01', '05'], ('2013', '12'): ['01', '09'], ('2014', '11'): ['14'], ('2014', '10'): ['13', '01'], ('2014', '12'): ['01'], ('2013', '04'): ['01']}
>>>

您可以使用嵌套列表理解将结果转换为日期时间对象的相对月份的嵌套列表:

>>> [[datetime(int(y),int(m),int(d)) for d in days] for (y,m),days in my_dict.items()]
[[datetime.datetime(2013, 10, 1, 0, 0), datetime.datetime(2013, 10, 5, 0, 0)], [datetime.datetime(2013, 12, 1, 0, 0), datetime.datetime(2013, 12, 9, 0, 0)], [datetime.datetime(2014, 11, 14, 0, 0)], [datetime.datetime(2014, 10, 13, 0, 0), datetime.datetime(2014, 10, 1, 0, 0)], [datetime.datetime(2014, 12, 1, 0, 0)], [datetime.datetime(2013, 4, 1, 0, 0)]]

关于python - 试图将日期列表放入 date.year、date.month、date.day 中进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33546935/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com