gpt4 book ai didi

python - Python 加权搜索和排序

转载 作者:行者123 更新时间:2023-12-01 05:48:59 24 4
gpt4 key购买 nike

我正在用Python创建一个生物模拟器,我要做的第一件事就是寻找食物。当然,要搜索的因素之一是距离,但我也想按食物来源的质量进行排序。有没有好的方法可以做到这一点?我想我会得到所有可能来源的列表,然后对列表进行排序,我知道 python 内置了排序函数,但我不太理解其中的 lambda 部分。

最佳答案

lambda(您不必使用 lambda,您可以使用命名函数)是您插入效用计算的地方。创建一个函数,首先根据距离和质量为食物源分配分数,然后将其作为“键”传递给排序函数,以根据它对列表进行排序。重要的是,您可以将效用计算表示为产生可排序输出(如数字分数)的函数 - 如果您不能,那么您就没有任何可排序的依据。

举个例子,一个简单的效用函数是根据质量减去距离进行评分:

sources.sort(key=lambda source: source.quality - source.distance, reverse=true)

reverse=true 是因为该函数为更好的选项分配更高的分数;你可以随意反转你的效用方法(“距离减去质量”)并将其排除在外。 source.distance 当然必须替换为某种函数来计算相对于当前位置的距离。

关于python - Python 加权搜索和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15078095/

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