Найти - Пользователи
Полная версия: Помогите отсортировать
Начало » Python для новичков » Помогите отсортировать
1 2 3 4
Eva_777
Помогите, плиз, отсортировать такой список “WTS1234, ACDW485, WTS72, SHR728, ACDW14, SHR16, WTS16”
Буквенная часть отсортированного списка должна быть такой “WTS, ACDW, SHR”, а цифровая часть должна быть отсортирована по возрастанию.
Я-новичок, и для меня это достаточно сложная задачка)
sergeek
Eva_777
Буквенная часть отсортированного списка должна быть такой
какой?
[1,4,3,'f',5,'q']
во что такой список должен превратиться?
Eva_777
“WTS1234, ACDW485, WTS72, SHR728, ACDW14, SHR16, WTS16” -исходный список
“WTS, ACDW, SHR” - Буквенная часть отсортированного списка
dimy44
Я вижу строку а не список в вашем примере. Уточните задачу, если хотите получить нужный вам ответ. Вид списка на входе и на выходе.
sergeek
import re
ls = "WTS1234, ACDW485, WTS72, SHR728, ACDW14, SHR16, WTS16".split()
sorted(ls,key=lambda e : int(re.match('.*?(\d+)',e).group(1)))
Out[38]: ['ACDW14,', 'SHR16,', 'WTS16', 'WTS72,', 'ACDW485,', 'SHR728,', 'WTS1234,']
Eva_777
dimy44
Я вижу строку а не список в вашем примере. Уточните задачу, если хотите получить нужный вам ответ. Вид списка на входе и на выходе.

это списки) сорри)))
dimy44
Eva_777
“WTS1234, ACDW485, WTS72, SHR728, ACDW14, SHR16, WTS16” -исходный список “WTS, ACDW, SHR” - Буквенная часть отсортированного списка
Если указанный “исходный список” является для Вас списком (list), то я - pass).
Eva_777
Вы, конечно, извините, а если это будет строка, вы измените свое решение?)
dimy44
Вот я и хочу, чтоб Вы четко, конкретно, написали пример того, что в начале, а что, в результате сортировки, в итоге. Буква в букву, без расплывчатых объяснений про цифровую и буквенную часть. Так можно будет понять задачу. И сэкономить время- свое и сообщества.
sergeek
import re
ls = "WTS1234, ACDW485, WTS72, SHR728, ACDW14, SHR16, WTS16".split(', ')
spisok = sorted(ls,key=lambda e : int(re.match('.*?(\d+)',e).group(1)))
stroka = ', '.join(spisok)
print(spisok)
print(stroka)
['ACDW14', 'SHR16', 'WTS16', 'WTS72', 'ACDW485', 'SHR728', 'WTS1234']
ACDW14, SHR16, WTS16, WTS72, ACDW485, SHR728, WTS1234
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB