我想對連續順序中的元組列表排序,因此每個元組的第一個元素等於前一個元素的最後一個元素。按連續順序對元組列表進行排序
例如:
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 *或*連續*這兩個術語都適用於這個問題。 –