Netlogo选择列表列表的最小第一个值

问题描述 投票:1回答:1

我正在Netlogo中寻找一种解决方案,以从具有最小对值的列表中获取值。

((value1,value2)(value1,value2)...)

例如,我有一个列表:

ListofLists = ((2,3)(5,8)(1,9))

我想选择具有最小第一值的列表。 ->在这里(1,9),然后写出第二个值。

Goal: Get 9!

我的尝试看起来像这样:

ListofLists = ((2,3)(5,8)(1,9))
    let ChoosedList []
    set ChoosedList min (item 0 ListofLists)
    set ChoosedValue item 1 ChoosedList

您对此有解决方案吗?谢谢!

list max netlogo min
1个回答
0
投票

最简单的方法是按照每个子列表的第一个元素对列表列表进行排序,然后将已排序的列表中的第一个子列表的第二个元素进行排序。这是分阶段进行的:

let sorted-list sort-by [[a b] -> item 0 a < item 0 b] [[2 3] [5 8] [1 9]]
let ChoosedList first sorted-list
let ChoosedValue item 1 of ChoosedList

或一行,

let ChoosedValue item 1 first sort-by [[a b] -> item 0 a < item 0 b] [[2 3] [5 8] [1 9]]

sort-by对于列表列表的排序非常有用。

希望这会有所帮助,查尔斯

© www.soinside.com 2019 - 2024. All rights reserved.