Сортировка 2-го списка без метода sorted () - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь отсортировать этот 2d список

arr = [['Potato', 10, 'House'], ['Salad', 9, 'not'], ['few', 4, 'and']]

После сортировки это должно выглядеть так:

[['few', 4, 'and'], ['Salad', 9, 'not'],  ['Potato', 10, 'House']]

Я пробовал использовать минимальное число как arr[0][1] и затем l oop по списку, но не смог его получить.

без использования sorted () и sort ()

Ответы [ 3 ]

2 голосов
/ 14 марта 2020

sorted () работает аналогично другому ответу, и сами списки имеют метод sort ():

>>> arr = [['Potato', 10, 'House'], ['Salad', 9, 'not'], ['few', 4, 'and']]
>>> 
>>> arr.sort(key=lambda x: x[1])
>>> arr
[['few', 4, 'and'], ['Salad', 9, 'not'], ['Potato', 10, 'House']]
>>> 

sorted() возвращает новый отсортированный список, тогда как <list>.sort() сортирует список по месту.

2 голосов
/ 14 марта 2020

Вы можете попробовать это ниже:

from operator import itemgetter

arr = [['Potato', 10, 'House'], ['Salad', 9, 'not'], ['few', 4, 'and']]
print(sorted(arr, key=itemgetter(1)))
2 голосов
/ 14 марта 2020

Сортировка с ключевым аргументом

print(sorted(arr, key=lambda x:x[1]))
# [['few', 4, 'and'], ['Salad', 9, 'not'], ['Potato', 10, 'House']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...