我有输出
[['a', 'b', 'a', 'c', 'd', 20.0], ['a', 'b', 'd', 11.0], ['a', 'c', 'd', 10.0]]
我想获取最小路径,在本例中为 10
这是一种路径查找算法,字母可能会有所不同
我尝试使用 float 键,但无法弄清楚
最佳答案
您可以使用 min()
的 key
参数:
path = min(my_list, key=operator.itemgetter(-1))
这会将键函数应用于列表的每个元素,并返回应用该函数的结果最小的元素。函数 operator.itemgetter(-1)
返回每个列表的最后一个元素。
也就是说,您可能会重新考虑您的数据结构。包含名称和 float 作为最后一个元素的混合列表似乎使用起来很麻烦。尽管添加了一个嵌套级别,但使用包含两个条目的元组列表可能会使您的代码更加自然:
[(['a', 'b', 'a', 'c', 'd'], 20.0),
(['a', 'b', 'd'], 11.0),
(['a', 'c', 'd'], 10.0)]
关于python - 在字符串和数字python列表中找到最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28268304/