Сортировать подсписки по 2 значениям с идентификатором, состоящим из строки с последовательными цифрами в конце - PullRequest
0 голосов
/ 25 января 2019

У меня есть список, состоящий из подсписков: каждый подсписок всегда имеет два значения в одном и том же порядке: [id, value]

Каждый идентификатор состоит из буквы, обозначающей функцию (W, F,H или R), чем уровень позиции (от A до Z), а затем порядок размещения / создания (порядковый номер).

Таким образом, список будет выглядеть примерно так:

[[WA1, value],[WA2, value], [HA3, value]....[WA122, value][HA123,value]]

Iпопытался выполнить сортировку с использованием

r.sort (лямбда-x, y: x [0] [1:]) в надежде получить частичную строку в качестве ключа, но она не удалась.

pn = input1
th = Input2
i=0
r=[]
for p in pn:
    r.append([p, th[i]])
    i+=1

r.sort(lambda x,y: x[0][1:])

В последней строке я получаю сообщение об ошибке отслеживания.

Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 25 января 2019

Я разобрался с ответом после попытки в течение некоторого времени

sorted(r, key=lambda x: (len(x[0]), x[0][1:]))
...