【发布时间】:2016-07-07 22:05:16
【问题描述】:
我目前正在尝试合并列表中的一些元组。这是我目前所拥有的
dates = [(u'13', u'01', u'19:00', u'Event 1', u'1', u'', u''),
(u'06', u'02', u'10:00', u'Event 2', u'0', u'', u''),
(u'07', u'02', u'09:00', u'Event 2', u'0', u'', u''),
(u'24', u'02', u'20:00', u'Event 3', u'1', u'', u''),
(u'25', u'02', u'19:30', u'Event 4', u'1', u'', u''),
(u'8', u'04', u'', u'Event 5', u'1', u'', u''),
(u'9', u'04', u'', u'Event 5', u'1', u'', u''),
(u'10', u'04', u'', u'Event 5', u'1', u'', u''),
(u'27', u'04', u'20:00', u'Event 6', u'1', u'', u'')]
prev_name = None
prev_day = None
counter = 1
newList = []
for value in dates:
if prev_name is None and prev_day is None:
prev_name = value[3]
prev_day = value[0]
else:
if not value[2]:
if prev_name == value[3] and int(value[0]) == (int(prev_day) + 1):
prev_name = value[3]
prev_day = value[0]
counter += 1
newList.append((value[0], value[3], counter))
continue
else:
prev_name = value[3]
prev_day = value[0]
counter = 1
newList.append((value[0], value[3], counter))
continue
newList.append((value[0], value[3]))
for value in newList:
print value
我得到的列表是这样的:
(u'13', u'Event 1')
(u'06', u'Event 2')
(u'07', u'Event 2')
(u'24', u'Event 3')
(u'25', u'Event 4')
(u'8', u'Event 5', 1)
(u'9', u'Event 5', 2)
(u'10', u'Event 5', 3)
(u'27', u'Event 6')
我想要做的是合并这 3x 元组,我在最后添加了计数器。 但不是以正常的合并方式。 我想删除除第一个条目之外的所有条目,但也将计数器移到它。
所以
(u'8', u'Event 5', 1)
(u'9', u'Event 5', 2)
(u'10', u'Event 5', 3)
应该变成
(u'8', u'Event 5', 3)
如果这是一个重复发生的事件,我已经得到了在末尾添加计数器的列表。但是很难将其合并到一个元组列表条目中。 这是用于 ical 导出,而不是每天输入一个条目,它应该创建一个条目,但长度为 +x 天。
【问题讨论】: