在python中如何从列表中获取最接近的元素

在python中如何从列表中获取最接近的元素,python,Python,我有一张单子。 我想找出列表中哪个数字在最高和最低之间最接近k,但不使用lambda或abs。我怎么做 a=[1,5,8,4,9,25,10,16,54] k=12 highest = max(a) lowest = min(a) 试试这个棘手的代码 代码语法 对于已排序的(a)中的每个: 如果每个

我有一张单子。 我想找出列表中哪个数字在最高和最低之间最接近k,但不使用
lambda
abs
。我怎么做

a=[1,5,8,4,9,25,10,16,54]
k=12
highest = max(a)
lowest = min(a)
试试这个棘手的代码

代码语法

对于已排序的(a)中的每个:
如果每个
输出

Original List: [1, 5, 8, 4, 9, 25, 10, 16, 54]
Lowest according to (12): 10
Highest according to (12): 16

[Program finished]

这回答了你的问题吗?为什么要任意约束?
abs
lambda
都是python的内置功能。对列表排序,然后使用线性搜索或二进制搜索search@dawg
bisect
与此有什么关系?当所有答案都使用
abs
lambda
时,如何复制问题?列表无法进行排序这就是问题所在。@AtticRahman此解决方案将创建一个临时排序列表。原始列表不会被排序。他/她没有提到任何有关排序的内容!谢谢你会试试这个@Dr。Xavier@Ted克莱恩·伯格曼,没错。我们不在名单上玩。我们将整个列表图像指向另一个地址来操作它。但是我们没有改变主列表,这肯定会解决问题,但会使问题更加复杂。其实是想找点东西让孩子们可以understand@AtticRahman补充说明,我认为这种线性方法是基本的,现在你可以更容易地解释它
10
Original List: [1, 5, 8, 4, 9, 25, 10, 16, 54]
Lowest according to (12): 10
Highest according to (12): 16

[Program finished]