我想对连续顺序中的元组列表排序,因此每个元组的第一个元素等于前一个元素的最后一个元素。按连续顺序对元组列表进行排序
例如:
input = [(10, 7), (4, 9), (13, 4), (7, 13), (9, 10)]
output = [(10, 7), (7, 13), (13, 4), (4, 9), (9, 10)]
我已经开发了这样的搜索:
output=[]
given = [(10, 7), (4, 9), (13, 4), (7, 13), (9, 10)]
t = given[0][0]
for i in range(len(given)):
# search tuples starting with element t
output += [e for e in given if e[0] == t]
t = output[-1][-1] # Get the next element to search
print(output)
有一个Python的方式来实现这样的命令? 并有办法做到这一点“就地”(只有一个列表)?
在我的问题,输入可以在使用所有元组的圆形方式被重新排序,所以它是不重要的所选择的第一个元素。
如果一个元组与其他任何元组都不匹配,该怎么办? – Kasramvd
另外,配对是唯一的,还是必须处理回溯:如果您第一次尝试将它们配对不正确? – ShadowRanger
我不认为* sort *或*连续*这两个术语都适用于这个问题。 –