gpt4 book ai didi

python - 两个列表之间的值差异

转载 作者:太空宇宙 更新时间:2023-11-04 02:02:15 27 4
gpt4 key购买 nike

我正在做一道练习题,想用递归找到两个列表之间的最小差异。例如,如果我有一个列表 X,其值为 [79, 85, 10],还有一个列表, Y, 值为[78, 80, 87, 12],视差为4。

我已经尝试遍历两个列表,但无法弄清楚如何找到差异的最小总和,而不是只返回对。

我希望此函数返回滑雪者和滑雪板对,而不是表示两个给定列表之间的最小差异的总和。

最佳答案

一种解决方案是使用 NumPy 在滑雪板列表中找到最接近的值(NumPy 函数借用自 Find nearest value in numpy array )。然后穿过滑雪者并找到最接近的尺寸。请记住从列表中删除该尺寸。

import numpy as np

def find_nearest(array, value):
array = np.asarray(array)
idx = (np.abs(array-value)).argmin()
return array[idx]

def pair(x, y):
skier_skis = []
skis_left = list(y)
for skier in x:
skier_skis.append((skier, find_nearest(skis_left, skier)))
skis_left.remove(skier_skis[-1][1])
return skier_skis

skiers = [6, 11, 13]
skis = [5, 7, 9, 14]
pair(skiers, skis)

返回 [(6, 5), (11, 9), (13, 14)]。

如果您的目标只是返回最小差异,则遍历 skier_skis 列表并对差值求和。

编辑:正如@Rivers Shall 指出的那样,这可能并不总是返回最佳解决方案。

关于python - 两个列表之间的值差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55485114/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com