【发布时间】:2017-02-15 16:20:29
【问题描述】:
我有一个动态创建的元组列表。
列表显示为:
List = [(1,4), (8,10), (19,25), (10,13), (14,16), (25,30)]
list的每个元组(a, b)代表某个表的索引范围。
(a, b) and (b, d) 的范围在我的情况下与(a, d) 相同
我想合并第二个元素匹配第一个元素的元组。
所以,在上面的例子中,我想合并(8, 10), (10,13)得到(8,13)并删除(8, 10), (10,13)
(19,25) and (25,30) 合并应该产生(19, 30)
我不知道从哪里开始。元组不重叠。
编辑:我一直在尝试避免任何类型的 for 循环,因为我有一个非常大的列表
【问题讨论】:
-
可以有
[(1, 4), (4, 8), (8, 10)]这样的列表吗? -
这是一个快速而肮脏的想法:设置两个基于索引的 for 循环,第二个 for 循环从外部循环的索引开始。检查是否可以使用外部循环的索引与内部循环的索引合并元组。如果可以将 index[i] 替换为
(a,d),然后重复。 -
对,正确的处理方法应该是什么
-
这很容易。你试过什么
-
由于元组不重叠,您可以简单地对列表进行排序,如果它们重合,则合并相邻的元组。
标签: python algorithm list tuples