2017-09-15 111 views
0

我跟蹤一個列表,並且每個集合都有一個百分比支持(百分比值表示頻率)。每個支持都綁定到一組。Python按包含列表和值的二維數組中的第一個列表排序值

X:

[('C', 'A'), 66.667] 
[('T', 'A'), 50.0] 
[('C', 'D'), 66.667] 
[('C', 'T'), 66.667] 
[('C', 'W'), 83.333] 
[('A', 'W'), 66.667] 
[('W', 'T'), 50.0] 
[('W', 'D'), 50.0] 

我想排序的數組,忽略支撐,使得其看起來像這樣:

[('A', 'C'), 66.667] 
[('A', 'T'), 50.0] 
[('A', 'W'), 66.667] 
[('C', 'D'), 66.667] 
[('C', 'T'), 66.667] 
[('C', 'W'), 83.333] 
[('D', 'W'), 50.0] 
[('T', 'W'), 50.0] 

排序集合在X [0],則整個第一列

+0

檢查出['sorted'](https://docs.python.org/3/library/functions.html#sorted)內置函數。 –

回答

2

排序的元組,然後排序列表:

lst = sorted([[tuple(sorted(x)), y] for x, y in lst], key=lambda x: x[0]) 
print(lst) 

[[('A', 'C'), 66.667], 
[('A', 'T'), 50.0], 
[('A', 'W'), 66.667], 
[('C', 'D'), 66.667], 
[('C', 'T'), 66.667], 
[('C', 'W'), 83.333], 
[('D', 'W'), 50.0], 
[('T', 'W'), 50.0]] 
+0

您不需要爲外部呼叫指定'sorted'鍵。 –

+0

@ZachGates哦,是的,我喜歡。我不想假設元組永遠不會相連,在這種情況下,無鍵排序會使用百分比打破關係,這不是他們想要的。 –

+1

夠公平的。在再次閱讀問題後,OP確實表示忽略百分比。好答案。 –

相關問題