#python #sorting
#python #сортировка
Вопрос:
У меня есть:
l = [['T182', 'XXX-0'], ['S41', 'Q8BFU2-0']]
Я хочу:
[['S41', 'Q8BFU2-0'], ['T182', 'XXX-0']]
Мое текущее решение — создать новый вложенный список:
i = [['T', '182', 'XXX-0'], ['S', '41', 'Q8BFU2-0']]
Что позволяет мне легко получить мой результат, хотя и не используя оптимальный способ.
Я хочу l
применить числовую сортировку к этому вложенному списку на основе числовой части первого элемента каждого подсписка.
Это без восстановления вложенного списка.
Ответ №1:
предполагая, что элементы следуют шаблону один символ плюс целое число, вы могли бы сделать это:
res = sorted(l, key=lambda x: int(x[0][1:]))
x[0]
выбирает первые элементы ваших подсписков; x[0][1:]
выбирает все, кроме первого символа. то, что останется, будет преобразовано в целое число и использовано как key
for sorted
.