-3

可以帮我用python迭代

我有文件:

Sukirman  2011-07-01  09:53:43
Sukirman  2011-07-01  13:11:45
Sukirman  2011-07-01  16:36:03 
Sukirman  2011-07-01  17:14:22
Sukirman  2011-07-04  12:16:40
Sukirman  2011-07-04  14:39:28
Sukirman  2011-07-04  15:32:13
Sukirman  2011-07-04  15:38:23
Sukirman  2011-07-04  16:11:23
Sukirman  2011-07-04  16:19:04
Sukirman  2011-07-05  09:26:08
Sukirman  2011-07-05  09:46:17
Sukirman  2011-07-05  14:08:44
Sukirman  2011-07-05  14:40:02

我想转换为列表

l = [("2011-07-01",("09:53:43","17:14:22")),
("2011-07-04",("12:16:40","16:19:04")),
"2011-07-05",("09:26:08","14:40:02"))]

有人可以帮我用python吗

4

2 回答 2

4

您可能需要字典而不是列表。否则只需d.items()在下面的代码中制作

>>> import collections
>>> d = collections.defaultdict(list)
>>> for name, date, hour in (line.split() for line in open('the_file.txt')):
    d[date].append(hour)
>>> print(d)
defaultdict(<class 'list'>, 
{'2011-07-01': ['09:53:43', '13:11:45', '16:36:03', '17:14:22'], 
 '2011-07-05': ['09:26:08', '09:46:17', '14:08:44', '14:40:02'], 
 '2011-07-04': ['12:16:40', '14:39:28', '15:32:13', '15:38:23', 
                '16:11:23', '16:19:04']})

如果你愿意,你可以使用一个with声明。

于 2011-08-17T02:35:04.093 回答
1

是的,您最好使用字典您必须使用正则表达式和组来制作列表,请尝试:

import re

regex=re.compile((?P<date>\d\d\d\d-\d\d-\d\d$).+(?P<hour>\d\d:\d\d:\d\d)$
l=regex.group()
于 2011-08-17T09:35:24.673 回答