在Python中获取数组中的最小值
我正在尝试用Python编程。
我有一个数组,里面存着一些数据,比如:
[A,20,False] [B,1,False] [C,8,False]
我想要通过找到中间数字最小的元素来循环这个数组。比如,接下来要处理的元素是B,因为它的中间数字1是最小的。然后把B删除,接下来要用的元素就是C,因为在20和8中,8是最小的……
希望我说得够清楚。
请帮帮我。
谢谢!
3 个回答
0
首先把列表排序,然后像你说的那样遍历它:
somelist = [[A,20,False] [B,1,False] [C, 8, False]]
somelist.sort(lambda x, y: cmp(x[1], y[1]))
for smallest in somelist:
# do stuff with the smallest member
2
这段代码会帮你找到数字最小的那个项目:
from operator import itemgetter
next = min(array,key=itemgetter(1))[0]
你也可以用第二个项目来排序这个列表:
array.sort(array,key=itemgetter(1))
5
>>> myList = [["A", 20, False], ["B", 1, False], ["C", 8, False]]
>>> smallest = min(myList, key=lambda L: L[1])
>>> smallest
['B', 1, False]
>>> sorted(myList, key=lambda L: L[1])
[['B', 1, False], ['C', 8, False], ['A', 20, False]]
如果你想用那个元素来排序,你可以用 sorted
来做同样的事情: