[英]Python re-ordering a list of tuples by pre-defined sequence
我有一個元組列表,我想按預先定義的特定順序進行排序:
Tuple_list=[(0, 1), (0, 3), (1, 3), (2, 0), (2, 3), (3, 1), (3, 2)]
order=[5,7,4,1,6,2,3]
sorted_tuples=[(2,3), (3,2), (2,0), (0,1), (3,1), (0,3), (1,3)]
順序是指元組在列表中的位置。 我一直在嘗試使用python的sorted函數,但是無法獲取它以產生所需的輸出,並且找不到找到幫助這種特定類型的元組排序問題的線程。
使用列表理解:
>>> [Tuple_list[i-1] for i in order]
[(2, 3), (3, 2), (2, 0), (0, 1), (3, 1), (0, 3), (1, 3)]
這種“排序”稱為排列
sorted_tuples = map(lambda o: Tuple_list[o-1], order)
如果您已經知道要按什么順序處理的元素,則無需使用排序算法-只需遍歷索引並獲取相應的列表項即可:
sorted_tuples = [tuple_list[i - 1] for i in order]
或者,如果您使用真正的基於零的Python索引
sorted_tuples = operator.itemgetter(*order)(tuple_list)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.