gpt4 book ai didi

python - 在 min python 函数中优先考虑正值而不是负值。

转载 作者:行者123 更新时间:2023-11-28 21:24:32 25 4
gpt4 key购买 nike

假设我有一个值列表:

l = [1, -1]

我想取更接近其他值的列表值,例如0,我可以接受这个:

min(l, key=lambda v: abs(v - 0))
# prints 1

但如果我更改列表中值的顺序,例如:

l = [-1, 1]

我在上面调用了相同的函数,我得到的是 -1 而不是 1,所以我怎么总能得到正值和负值在相同距离处的正值?

最佳答案

你可以让 lambda 函数返回一个元组,其中的第二项表示它是正数还是负数:

min(l, key=lambda v: (abs(v - 0), v < 0))

比较元组时,第一项优先,其次是第二项。因此,第二项充当“决胜局”。自 False < True , 这将优先 1 (变成 (1, False) )到 -1 (变成 (1, True)

关于python - 在 min python 函数中优先考虑正值而不是负值。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15855747/

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