我使用2个标准排序列表的Python列表:排序使用两个标准
index_sort = {'r1':1, 'r2':2, 'T1':3, 'r3':4, 'T2':5, 'T3':6}
Eall_pairsorted = sorted(Eall_pairsorted, key = lambda e: (index_sort[e[0]], index_sort2[e[1]] ))
的问题是,我得到:
['r1', 'r2', '++', '0.01 0.01', -56.19568267]
['r1', 'T1', '++', '0.01 0.017453292519943295', -56.19567285]
['r1', 'r3', '++', '0.01 0.01', -56.19568267]
['r1', 'T2', '++', '0.01 0.017453292519943295', -56.19567285]
['r1', 'T3', '++', '0.01 0.017453292519943295', -56.19568714]
['r2', 'T1', '++', '0.01 0.017453292519943295', -56.19567439]
['r2', 'r3', '++', '0.01 0.01', -56.19568267]
['r2', 'T2', '++', '0.01 0.017453292519943295', -56.1956784]
['r2', 'T3', '++', '0.01 0.017453292519943295', -56.19568357]
['T1', 'T2', '++', '0.017453292519943295 0.017453292519943295', -56.19566509]
['T1', 'T3', '++', '0.017453292519943295 0.017453292519943295', -56.19570279]
['r3', 'T1', '++', '0.01 0.017453292519943295', -56.1956784]
['r3', 'T2', '+-', '0.01 0.017453292519943295', -56.19567944]
['r3', 'T3', '++', '0.01 0.017453292519943295', -56.19568357]
['r3', 'T3', '--', '0.01 0.017453292519943295', -56.19568081]
['r3', 'T3', '+-', '0.01 0.017453292519943295', -56.19569063]
['r3', 'T3', '-+', '0.01 0.017453292519943295', -56.1956905]
['T2', 'T3', '++', '0.017453292519943295 0.017453292519943295', -56.19570279]
['T2', 'T3', '--', '0.017453292519943295 0.017453292519943295', -56.19570039]
['T2', 'T3', '+-', '0.017453292519943295 0.017453292519943295', -56.195661]
['T2', 'T3', '-+', '0.017453292519943295 0.017453292519943295', -56.19566132]
,我想已经切换R3和T1在一条线上:
['r3', 'T1', '++', '0.01 0.017453292519943295', -56.1956784]
得到以下顺序:
['T1', 'r3', '++', '0.01 0.017453292519943295', -56.1956784]
我只想交换'T1'和'r3',而不是整列。
任何提示如何做到这一点?
能否请你澄清你的问题?即删除不必要的数据,使用更易读的变量名称等。 – tcurvelo
所以基本上你只想交换每个列表中的第一个和第二个元素?这与排序有什么关系?如果您希望将排序应用于翻转位置的变量,则可以在排序之前将它们翻转,或者在“键”lambda函数中更改索引的顺序。即'lambda e:(index_sort [e [1]],index_sort2 [e [0]])' –
您是否想仅交换具有'r3'和'T1'或整列的条目? –