我想基於列表中的數字與給定數字的接近程度對列表進行排序。 因此,例如:相對於列表中最接近的數字對列表進行排序python
target_list = [1,2,8,20]
number = 4
then probably sorted list is [2,1,8,20]
as 4-2 = 2
4-1 = 3
mod|4-8| = 4
mod|4-20| = 16
櫃面碰撞,我真的不關心哪一個是第一位的,但然後我試圖解決這距離度量的基礎上的列表。 什麼是最好的(和pythonic)方式來做到這一點。
感謝
拉姆達我的錯誤。任何人都有一個不錯的oneline解決方案? 'sorted(target_list,key = partial(operator.add,-number))'顯然錯過了'abs()':( – ch3ka 2012-04-23 19:54:43
@ ch3ka可以通過使用['functional'模塊](http:// docs。 python.org/release/3.1.5/howto/functional.html#the-functional-module)通過編寫'operator.add'和'abs'。 – ovgolovin 2012-04-23 22:22:37
@ ch3ka但是我認爲'lambda'會更好看!Raymond Hettinger最近寫了關於所有那些'partial's:https://twitter.com/#!/raymondh/status/183686911112646657 – ovgolovin 2012-04-23 22:26:08