У меня есть назначение по логике и его отношениям, и на определенном этапе алгоритма я должен иметь возможность сортировать по алфавиту список со строками и списками строк.Сортировка по алфавиту списка со строками и списками строк в Python
Например, что-то вроде
[['not', 'D'], ['not', 'C'], 'B', 'A']
должен стать
['A', 'B', ['not', 'C'], ['not', 'D']]
так, что строки единицы (предложения) получить отсортированные вместе со строками на второй элемент из списка (не Символизирует отрицание предложения и постоянное).
До сих пор я мог использовать sorted(List, key=itemgetter(0,1))
, но это всего лишь трюк для этого особого случая и даже не работает, когда строки являются литералами, как пример выше. Обратите внимание, что строка может быть «B» или «Banana», последняя для которой работает мое быстрое исправление.
Я ценю вашу помощь, так как мне не удалось найти решение по всем вопросам, поставленным здесь.
EDIT:
Другим примером является то, что
[['not', 'Pours'], ['not', 'Outside'], 'Rusty', 'Rains']
должен стать
['Rains', 'Rusty', ['not', 'Outside'], ['not', 'Pours']]
Но я на самом деле пытался перейти от общего случая я представил и создать больше слов, и это на самом деле работал. Поэтому я думаю, что «нет» оказывает здесь некоторое влияние.
То есть,
[['not', 'Dinossaur'], ['not', 'Carriage'], 'Banana', 'Apocalypse']
фактически получает правильную форму с предложением любезно предоставленной @ inspectorG4dget.
Большое вам спасибо за ваш ответ, это было очень поучительно. Тем не менее, я проверил его для случая, когда размер строки был больше 1, и списки появились до строк единицы. Я считаю, что требуется другое условие, основанное на типе, но не повреждая буквальный случай. Есть ли у вас какие-либо предложения по эффективному применению этого метода? – Alegom
@Alegom: Пожалуйста, отредактируйте свое сообщение, чтобы включить пример проблемы, о которой вы упомянули, а также ожидаемый/желаемый результат. – inspectorG4dget
Сообщение было обновлено! Мне удалось сделать это за два шага, но я надеялся на одну идею. – Alegom