如何从python列表中获取5个最接近的整数?

问题描述 投票:1回答:1

我想获得5个最接近100的整数,例如100、99、98、101、102我使用了以下方法,但没有得到想要的结果。

myList = [95,96,97,98,99,100,101,102,103,104,105]
for i in myList:
    print(min(myList, key=lambda x:abs(x-100)))
    myList.remove(i)

输出:

100
100
100
100
100
100

然后我这样做:

myList = [95,96,97,98,99,100,101,102,103,104,105]
for i in myList:
    print(min(myList, key=lambda x:abs(x-i)))
    myList.remove(i)

输出:

95
97
99
101
103
105

在这种情况下,大于95、97和105; 98、96和102最接近;但是,这些关闭数字将被跳过。

请看一下并提出建议。谢谢:)

python list algorithm sorting closest
1个回答
0
投票

您只是打印最小值(相对于定义),但是随后仅弹出下一个元素。相反,请执行以下操作:

myList = [95,96,97,98,99,100,101,102,103,104,105]
for i in range(5):
    best = min(myList, key=lambda x: abs(100-x))
    myList.remove(best)
    print(best)
© www.soinside.com 2019 - 2024. All rights reserved.