gpt4 book ai didi

python - GAE Python - 'Clamp' 日期一起形成 'tree' 结构

转载 作者:太空宇宙 更新时间:2023-11-03 19:13:00 30 4
gpt4 key购买 nike

我需要将 python 中的日期分解为:年、月、日和时间(小时)。

我有一个对象列表,每个对象都有一个日期属性:

startDate=db.DateTimeProperty(auto_now_add=True)

日期属性包含年、月、日和时间。

我希望创建一个新的嵌套列表(字典),其中:

外部列表 - 是年份列表(至少出现在一个输入日期中)-> 每年内部的月份列表(该年中至少出现在一个输入日期中)-> 在这几天内(与输入列表中存在的月份 - 天相同) -> 在时间(小时)列表内...每个我们都指向它各自的对象。

我希望这很容易理解。

如果我得到以下列表作为输入:

{obj1 -> (2000 Dec 18 9:00AM), obj2 -> (2000 Dec 19 1:00PM)}

它将它们夹在一起,这样我就可以了

(2000) -> (Dec) -> {(18) -> (9:00AM) -> obj1 ,(19) -> (1:00PM) -> obj2}

我希望这是有道理的..

基本上我有很多带有日期的事件,我想这样列出它们:

Year ->
Month(s) of interest->
Day(s) of interest->
(event times)
.
.
.

Another Year ->
Relevant Month(s) ->
Relevant Day(s) ->
(event times)
.
.
.

而不是:

(Event1 : complete date & time) , (Event2 : complete date & time) , (event3 : complete date & time)

谢谢

最佳答案

class a: ## Using this class just to explain
def __init__(self,y,m,d,t):
self.y=y
self.m=m
self.d=d
self.t=t


o1 = a(2000,12,18,9) ## Just assuming integers here. you can choose immutable objects here
o2 = a(2000,12,19,13)
o3 = a(2001,11,18,9)
o4 = a(2000,11,18,6)
o5 = a(2000,12,6,7)

l=[o1,o2,o3,o4,o5]


d={}

for o in l:
if o.y not in d:
d[o.y] = {}
# print d
if o.m not in d[o.y]:
d[o.y][o.m]={}
if o.d not in d[o.y][o.m]:
d[o.y][o.m][o.d]={}
if o.t not in d[o.y][o.m][o.d]:
d[o.y][o.m][o.d][o.t]=o

您可以尝试生成格式更好的输出:

for k,v in d.items():
for j,h in v.items():
print k,j,h

我得到的输出为:

2000 11 {18: {6: <__main__.a instance at 0x0232E9E0>}}
2000 12 {18: {9: <__main__.a instance at 0x0232E940>}, 19: {13: <__main__.a instance at 0x0232E990>}, 6: {7: <__main__.a instance at 0x0232EA08>}}
2001 11 {18: {9: <__main__.a instance at 0x0232E9B8>}}

关于python - GAE Python - 'Clamp' 日期一起形成 'tree' 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12285846/

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