Как я могу отсортировать это?
>>> list = ["a_0","a_1","a_2","a_3","a_10","a_11","a_23","a_5","a_6","a_5"]
>>> sorted(list)
['a_0', 'a_1', 'a_10', 'a_11', 'a_2', 'a_23', 'a_3', 'a_5', 'a_5', 'a_6']>
Мне нужно, чтобы это было:
['a_0', 'a_1', 'a_2', 'a_3', 'a_5', 'a_5', 'a_6, 'a_10', 'a_11', 'a_23']>
Таким образом, его сортировка основана на "количестве", Спасибо, я заранее!
Вы имеете в виду это: sorted(list, key=lambda d: int(d[2:]))
?
Вам нужно написать "ключевую функцию", которая переводит вашу строку в ключ поиска, который имеет нужный вам порядок. Например:
def key(k):
s, sep, i = k.partition('_')
return (s, int(i))
>>> L = ["a_0","a_1","b_2","c_2","a_10","a_11","a_23","b_5","a_6","c_5"]
>>> sorted(L, key=key)
['a_0', 'a_1', 'a_6', 'a_10', 'a_11', 'a_23', 'b_2', 'b_5', 'c_2', 'c_5']