首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从整数列表中,获取最接近给定值的数字

问从整数列表中,获取最接近给定值的数字
EN

Stack Overflow用户
提问于 2012-08-27 19:32:08
回答 6查看 246.6K关注 0票数 213

给定一个整数列表,我想找出哪个数字最接近我在输入中给出的数字:

代码语言:javascript
复制
>>> myList = [4, 1, 88, 44, 3]
>>> myNumber = 5
>>> takeClosest(myList, myNumber)
...
4

有什么快速的方法可以做到这一点吗?

EN

回答 6

Stack Overflow用户

发布于 2012-08-27 19:37:36

代码语言:javascript
复制
>>> takeClosest = lambda num,collection:min(collection,key=lambda x:abs(x-num))
>>> takeClosest(5,[4,1,88,44,3])
4

lambda是编写“匿名”函数(没有名称的函数)的一种特殊方式。您可以为它指定任何想要的名称,因为lambda是一个表达式。

以上内容的“长”写法是:

代码语言:javascript
复制
def takeClosest(num,collection):
   return min(collection,key=lambda x:abs(x-num))
票数 11
EN

Stack Overflow用户

发布于 2012-08-27 19:36:16

遍历列表并将当前最接近的数字与abs(currentNumber - myNumber)进行比较

代码语言:javascript
复制
def takeClosest(myList, myNumber):
    closest = myList[0]
    for i in range(1, len(myList)):
        if abs(i - myNumber) < closest:
            closest = i
    return closest
票数 6
EN

Stack Overflow用户

发布于 2013-12-16 22:36:06

代码语言:javascript
复制
def closest(list, Number):
    aux = []
    for valor in list:
        aux.append(abs(Number-valor))

    return aux.index(min(aux))

此代码将为您提供列表中最接近的数字的索引。

总体来说,KennyTM提供的解决方案是最好的,但在您不能使用它的情况下(如brython),此函数可以完成工作

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12141150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档