#python #list #sorting #tuples
Вопрос:
В настоящее время я работаю над составлением списка кортежей для матричного вопроса, и я даю список кортежей , подобный этому [(hello,3),(morning,2),(good,5),(!,1)]
, и то, что мне нужно сделать для шага, — это отсортировать его по списку, подобному [(hello,3),(good,5),(morning,2),(!,1)]
. Я знаю, как это сделать, создав новый список и выполнив итерацию, но мне интересно, есть ли более простые вещи, которые мы можем сделать с помощью python. Как будто я могу отсортировать это с помощью списка [hello, good, morning,!]
. Спасибо вам за помощь.
Правило состоит в том, чтобы просто отсортировать список по заданному упорядоченному списку.
Комментарии:
1. В чем тут логика?
2. Составьте настоящие списки python. На самом деле, если вы сделаете его рабочим сценарием с присвоением переменной и сравнением с желаемым результатом, мы сможем легко протестировать его. Кроме того, сортируя, вы просто сортируете, разве
list(sort(your_list))
этого недостаточно?3. Каковы правила определения порядка? Вы можете использовать либо
my_list.sort()
илиsorted()
, если знаете, как определить правила.
Ответ №1:
Я говорю, что лучший способ-это создать словарь.
Входные данные:
lst = ['hello', 'good', 'morning', '!']
lot = [('hello', 3), ('morning', 2), ('good', 5), ('!', 1)]
Код:
dct = dict(lot)
print([(i, dct[i]) for i in lst])
Выход:
[('hello', 3), ('good', 5), ('morning', 2), ('!', 1)]
Это делает слова ключевыми и числовыми значениями словаря, а значения получаются в порядке lst
.
Это гораздо эффективнее, чем другие ответы, так sorted
как это довольно массивная функция.