2013-06-02 41 views
-3

任何人都知道如何使用值作爲參考對列表進行排序?例如,我有以下列表:基於與值的差異對Python中的列表進行排序

1,3,5,10,12 

和單值7,輸出將是:

5,10,3,12,1 

的感謝!

+8

問題不應該是測驗。確保解釋爲什麼輸出應該來自輸入。 – user2246674

+0

@Jamylak給你一個正確的答案。如果你想學習如何找到自己的答案,請閱讀:http://docs.python.org/2.7/howto/sorting.html –

+0

@RaymondHettinger經常想知道這個例子應該使用'methodcaller('lower') '作爲關鍵,而不是硬打字'str' –

回答

11
>>> nums = [1,3,5,10,12] 
>>> sorted(nums, key=lambda x: abs(7 - x)) 
[5, 10, 3, 12, 1] 

排序就地:

>>> nums.sort(key=lambda x: abs(7 - x)) 
>>> nums 
[5, 10, 3, 12, 1] 
+4

獲取輸出請求......並且很好地猜測需求 - 羞愧它沒有被描述得更好 –

+0

@jamylak它與7一起工作,但我需要通過7作爲參數,例如 tar = 6 nums.sort(key = lambda x:abs(tar - x)) – dantebarba

相關問題