Список сортировки Python

Я сейчас питон и совершенно новый для этого языка.

Сортировка списка на основе двух критериев. Список слов возвращает список с теми же словами в порядке длины (от самого длинного до кратчайшего), второй критерий сортировки должен быть в алфавитном порядке. Подсказка: вам нужно подумать о двух функциях.

Кто-нибудь может мне с этим помочь?

5 Solutions collect form web for “Список сортировки Python”

Вам нужен только один вызов для sort , потому что Python автоматически сортирует кортежи лексикографически. То есть, если вы попросите Python сравнить два кортежа, они будут упорядочивать их по их первому элементу, за исключением случаев, когда они сравниваются равными, и в этом случае он будет упорядочивать их по их второму элементу, за исключением случаев, когда они сравниваются в одном случае …

Вы хотите отсортировать список элементов за вычетом их длины, а затем в алфавитном порядке, так что вы хотите, чтобы ключ строки s был кортежем (-len(s), s) . Следовательно:

 >>> l = ['aa','aaa','aaaa','b','bb','z','ccc'] >>> sort_key = lambda s: (-len(s), s) >>> l.sort(key=sort_key) >>> l ['aaaa', 'aaa', 'ccc', 'aa', 'bb', 'b', 'z'] 

дизайн

Ключевое слово здесь – « стабильный алгоритм сортировки ». Подумайте о двух стабильных функциях сортировки:

  • одна сортировка по длине (сохранение относительного порядка записей с одинаковой длиной),
  • другая сортировка в алфавитном порядке.

В каком порядке вы могли бы объединить их для получения желаемого порядка?

Реализация

Как уже упоминалось, первую функцию сортировки можно назвать так:

 list.sort(key=len, reverse=True) 

Вторая функция сортировки может быть вызвана следующим образом:

 list.sort() 

Этого должно быть достаточно, чтобы написать полное решение.

результат

Если вы правильно комбинируете функцию, вы должны получить следующее:

 >>> l = ['aaa', 'fff', 'bbb', 'ddd', 'e', 'cccc'] # ... sorting functions combined in the right way ... >>> l ['cccc', 'aaa', 'bbb', 'ddd', 'fff', 'e'] 

В Python метод сортировки списка имеет ключ, который можно использовать для указания критериев сортировки. Для описанной проблемы я бы использовал ключ, а также обычную сортировку следующим образом.

 >>> l = ['aa','aaa','aaaa','b','bb','z','ccc'] >>> l.sort(key=len,reverse=True) >>> l ['aaaa', 'ccc', 'aaa', 'bb', 'aa', 'z', 'b'] >>> l.sort() >>> l ['aa', 'aaa', 'aaaa', 'b', 'bb', 'ccc', 'z'] >>> 

подсказки:

 mylist = ['one', 'three', 'zero'] mylist.sort(key=len) print mylist mylist.reverse() print mylist mylist.sort() print mylist otherlist = [(2, 'a'), (1, 'a'), (3, 'b'), (3, 'a')] otherlist.sort() print otherlist 
 a = отсортировано ([["foo", "o"], ["bar2", "yadda"], ["allo", "as3r"]], key = len)
 b = отсортировано (a)

Я считаю, что работает … я новичок в python

  • Алгоритм сортировки для разделения равных значений
  • Преимущества Quichesort
  • Сортировка по нескольким значениям, которые могут быть None
  • Почему «.sort ()» вызывает список «None» в Python?
  • Сортировка столбца дерева Tk
  • Как выполнить сортировку по правилам, но с повторением элементов для решения круговых ссылок?
  • как сделать сортируемый тип данных в Python?
  • Как отсортировать индексированный фрейм данных
  • Сортировка кортежей Python
  • Как написать ключевые функции сортировки Python для нисходящих значений
  • как я могу передать бесконечность redis из python?
  •  
    Interesting Posts for Van-Lav

    Опускание приоритета процесса многопроцессорности. Пул в Windows

    Лучший способ денормализации данных в Django?

    Вызов функции ввода после __init__ с декоратором

    В Python, что является подчеркиванием перед переменной экземпляра?

    Могу ли я как-то «скомпилировать» скрипт python для работы на ПК без установки Python?

    Добавьте 2 часа и 1 день на метку времени в джанго

    Как получить имя хоста или IP-адрес в settings.py, чтобы я мог использовать его, чтобы определить, какие URL-адреса приложения использовать

    Использование numpy для эффективного преобразования 16-битных данных изображения в 8 бит для отображения с масштабированием интенсивности

    Python .join или конкатенация строк

    Keras ValueError: операция ввода-вывода в закрытом файле

    перечислить модули как строки и импортировать их

    Вызов кода Python из Java путем передачи параметров и результатов

    Как преобразовать pandas / dataframe в XML?

    Heroku Нет такого типа веб-типа процесса в procfile

    Как сжать файл с помощью shutil.make_archive в python?

    Python - лучший язык программирования в мире.