我有ouput
[['a', 'b', 'a', 'c', 'd', 20.0], ['a', 'b', 'd', 11.0], ['a', 'c', 'd', 10.0]]
我想抓住最小路径,在这种情况下是10
这是一种路径查找算法,字母可以变化
我尝试使用浮动键,但无法弄清楚
答案 0 :(得分:3)
您可以将key
参数用于min()
:
path = min(my_list, key=operator.itemgetter(-1))
这将将键函数应用于列表的每个元素,并返回应用该函数的结果最小的元素。函数operator.itemgetter(-1)
返回每个列表的最后一个元素。
尽管如此,您可能会重新考虑您的数据结构。混合列表包含名称,然后浮点数作为最后一个元素似乎很麻烦。使用带有两个条目的元组列表可能会使代码更自然,尽管添加了一个嵌套级别:
[(['a', 'b', 'a', 'c', 'd'], 20.0),
(['a', 'b', 'd'], 11.0),
(['a', 'c', 'd'], 10.0)]