python - 在数字列表中找到最接近的记录速度 [python]
问题描述
我需要知道如何遍历列表并找到最接近限速的速度。所以几乎每次都遍历速度列表,查看差异。
到目前为止我所拥有的:
def find_nearest_speed(recorded_speeds, speed_limit):
"""Finds the closest recorded speed when compared to the speed limit."""
closest = abs(speed_data[0] - speed_limit)
for current_element in speed_data:
speed_difference = abs(current_element - speed_limit)
if speed_difference < abs(closest - speed_limit):
closest = current_element
return closest
max_speed = 30
speed_data = [24, 25, 27, 28, 31, 35]
closest_speed = (find_nearest_speed(speed_data, max_speed))
print("The closest recorded speed was {} Km/h.".format(closest_speed))
我得到什么:
The closest recorded speed was 24 Km/h.
我应该得到什么:
The closest recorded speed was 31 Km/h.
解决方案
你可以使用min:
max_speed = 30
speed_data = [24, 25, 27, 28, 31, 35]
closest_speed = min(speed_data, key=lambda x: abs(x - max_speed))
print("The closest recorded speed was {} Km/h.".format(closest_speed))
输出
The closest recorded speed was 31 Km/h.
推荐阅读
- c# - DateTime 在 UWP PC 上工作,但在 UWP Raspberry Pi 上不工作
- python - 将wav文件导入笔记本
- javascript - 从 iTunes Connect 获取所有订阅组和产品 ID
- c# - 如何构造和更新嵌套类的成员?
- postgresql - 什么是“非 SETOF 函数”?
- lazy-evaluation - 隐式惰性收集/获取不被视为“惰性”对象
- ios - 我怎么知道哪台打印机连接到钱箱。(EPSON SDK)
- automationanywhere - 当两个对象具有相同的属性时,如何在 Automation Anywhere 中克隆对象?
- excel - 将嵌套 IF 语句的结果汇总到一个单元格中
- python - Pyinstaller:添加自定义模块,将 ply 作为依赖项