[英]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.