2017-08-11 31 views
5

我有一個由兩個數字組成的列表。如何執行算術來對列表進行排序

[[2, 3], [7, 8], [3, 5]] 

我想基於將對它們進行排序的每個:

例如,2/3(0.666),7/8(0.875)3/5(0.6) 到輸出:

[[3, 5], [2, 3], [7, 8]] 

我假設我會以某種方式使用lambda,但我不知道如何正確編寫它。類似這樣的,但這只是按值排序:

list_of_lists.sort(key=lambda x: (x[0],x[1])) 

如何執行算術?

回答

10
lists = [[2, 3], [7, 8], [3, 5]] 
lists.sort(key=lambda x: (x[0]/x[1])) 
print(lists) 
+1

python 2.x用戶的旁註:在這裏你必須將其中一個操作符轉換爲浮點。 例如: 'float(x [0])/ x [1]' – cbo

+0

感謝@cbo爲'python 2.x'用戶添加Sidenote。 –

+0

我相信cbo暗示你可能想編輯你的答案來反映這個筆記。畢竟,評論不一定會永遠存在。 –

-1

願這一個對你有幫助。

a=[[2, 3], [7, 8], [3, 5]] 
print (sorted([a[i][0]/a[i][1] for i in range(len(a))])) 
+0

爲什麼投了票? –