我想基于列表中的数字与给定数字的接近程度对列表进行排序。 因此,例如:相对于列表中最接近的数字对列表进行排序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