格式化存储在defaultdict(list)中的datetime对象

时间:2014-08-13 19:25:49

标签: python python-2.7 dictionary formatting

假设您有一个常规字典,每个键代表一个时间对象,您可以对其进行格式化并将其打印到屏幕上,如下所示:

d = { key : DT_object}

#Print formatted key with corresponding formatted datetime object.
for key, value in d.iteritems():          
  print '%s %s' % (key,value)

现在,如果我们复杂一点,并为每个键存储一个日期时间对象列表:

from collections import defaultdict

d = { key : [DT_object,DT_object]}
for key, value in d.iteritems():          
  print '%s %s' % (key,value)

我们的格式化过程现在崩溃了。让python循环遍历列表中的每个对象并格式化它的正确代码是什么?

2 个答案:

答案 0 :(得分:0)

使用join并在值列表中创建所有对象字符串

 '%s %s' % (key," ".join([str(x) for x in value]))

str.format与示例结合使用:

d = { "foo" : [datetime.now(),datetime.now()]}
for key, value in d.iteritems():
    print '{} {}'.format(key, " ".join([str(x) for x in value]))

foo 2014-08-13 20:34:11.940936 2014-08-13 20:34:11.940981

您还可以使用其中一种datetime方法更改为字符串:

print '{} {}'.format(key, " ".join([x.isoformat() for x in value]))
foo 2014-08-13T20:36:08.900873 2014-08-13T20:36:08.900910

答案 1 :(得分:-1)

d = { key : [DT_object,DT_object]}
for key, value in d.iteritems():          
  print '%s %s' % (key,list(map(str,value)))

可能是你想要的......