Этот вопрос фактически адаптирован из ранее заданного Mat.S (image). Хотя он был удален, я подумал, что это хороший вопрос, поэтому я переписываю его с более ясными требованиями и своим собственным решением.
Учитывая список букв и цифр, скажем
['a', 2, 'b', 1, 'c', 3]
Требование состоит в том, чтобы сортировать числа по возрастанию и буквы в нисходящем, не изменяя относительное положение букв и цифр. Под этим я имею в виду, если несортированный список:
[L, D, L, L, D] # L -> letter; # D -> digit
Затем отсортированный список также должен быть
[L, D, L, L, D]
-
Буквы и цифры не обязательно чередуются в регулярном шаблоне - они могут появляться в любом произвольном порядке
-
После сортировки - числа возрастают, буквы спускаются.
Итак, для примера выше выходной файл
['c', 1, 'b', 2, 'a', 3]
Другой пример:
In[]: [5, 'a', 'x', 3, 6, 'b']
Out[]: [3, 'x', 'b', 5, 6, 'a']
Что было бы хорошим способом сделать это?