我想获得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最接近;但是,这些关闭数字将被跳过。
请看一下并提出建议。谢谢:)
您只是打印最小值(相对于定义),但是随后仅弹出下一个元素。相反,请执行以下操作:
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)