1

我正在尝试用 python 编程

我有一个包含数据的数组

[A,20,假] [B,1,假] [C, 8, 假]

我希望能够通过获取具有最低中间数字的元素来遍历数组,例如,下一个要处理的元素将是 B,因为它具有最小的数字 1。然后它被删除,所以下一个要使用的元素将是 C,因为在 20 和 8 中,8 是最小的数字......

希望我说清楚了

请帮忙

谢谢

4

3 回答 3

5
>>> myList = [["A", 20, False], ["B", 1, False], ["C", 8, False]]
>>> smallest = min(myList, key=lambda L: L[1])
>>> smallest
['B', 1, False]

如果您想使用该元素对其进行排序,您可以使用以下方法执行相同的操作sorted

>>> sorted(myList, key=lambda L: L[1])
[['B', 1, False], ['C', 8, False], ['A', 20, False]]
于 2011-03-14T22:27:46.060 回答
2

这将为您提供编号最小的项目:

from operator import itemgetter

next = min(array,key=itemgetter(1))[0]

您还可以使用第二项作为键对列表进行排序:

array.sort(array,key=itemgetter(1))
于 2011-03-14T22:28:29.380 回答
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
于 2011-03-14T22:27:47.463 回答