【发布时间】:2012-03-22 12:28:54
【问题描述】:
a = [('08:57', 'Edinburgh', '12:08'), ('12:08', 'London', '12:50'), ('12:50', 'London', 14:44')]
所以我有时间列表(这些是公共汽车旅程),例如上面的“a”,每个元组都包含该段的开始和停止时间以及车站名称。然而,它们有时也包含只是“在公共汽车站等候”的腿。这些可以通过以下事实来识别:开始时间与前一段的停止时间相同,而停止时间与下一段的开始时间相同。我想识别这些然后删除它们。我想知道集合,但是公共汽车站的命名搞砸了,然后我想知道发电机。
那么粗略的:
gen = (item for item in a) #turn list into generator object
try:
while 1:
if gen.next()[2] == gen.next()[0] and gen.next()[0]:
print 'match'
except StopIteration:
print 'all done'
确实有效,但它很糟糕,并且不允许我识别原始元组的索引位置来删除它。
非常希望有这样的方法。
【问题讨论】:
标签: python list comparison tuples