Подскажите как правильно отсортировать список
y = int(input())
c = list()
for i in range(x):
v = str(i)[0]
b = len(str(i))
if v * b == str(i):
c.append(i)
Код должен принимать 2 значения, первое - количество комнат, второе - комната на которой был ответ ( число 100% будет скучным, то есть 1;2;11;22;22222;99999 ) с созданием и отделением скучных чисел код справляется, но похожие скучные числа должны стоять рядом в том плане, что 1;11;111 должны стоять вместе. мой же вывод из кода при вводных значениях (100;22)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99]
в идеале список должен выглядеть вот так
[1, 11, 2, 22, 3, 33, 4, 44, 5, 55, 6, 66, 7, 77, 8, 88, 9, 99]
Ответы (1 шт):
Автор решения: чистов_n
→ Ссылка
Просто с использованием параметра key:
1.
c = [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99]
c.sort(key=str)
print(c)
c = [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99]
c = sorted(c, key=str)
print(c)
PS: Эти варианты равнозначны.
Вывод:
[1, 11, 2, 22, 3, 33, 4, 44, 5, 55, 6, 66, 7, 77, 8, 88, 9, 99]