Получение наименьшего числа в массиве python - PullRequest
1 голос
/ 15 марта 2011

Я пытаюсь программировать на python

У меня есть массив, который содержит данные, такие как

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

Я хочу иметь возможность циклически проходить по массиву, получая элемент с наименьшим средним числом, поэтому, например, следующий элемент, над которым нужно поработать, будет B, потому что он имеет наименьшее число один.Затем это удаляется, поэтому следующим используемым элементом будет C, потому что из 20 и 8 8 является наименьшим числом ...

надеюсь, я ясно дал понять

Пожалуйста, помогите

Спасибо

Ответы [ 3 ]

5 голосов
/ 15 марта 2011
>>> 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]]
2 голосов
/ 15 марта 2011

Это даст вам элемент с наименьшим номером:

from operator import itemgetter

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

Вы также можете отсортировать список, используя второй элемент в качестве ключа:

array.sort(array,key=itemgetter(1))
0 голосов
/ 15 марта 2011

Сначала отсортируйте список, а затем переберите его, как вы сказали:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...