Eva_777
Янв. 8, 2013 19:32:54
Помогите, плиз, отсортировать такой список “WTS1234, ACDW485, WTS72, SHR728, ACDW14, SHR16, WTS16”
Буквенная часть отсортированного списка должна быть такой “WTS, ACDW, SHR”, а цифровая часть должна быть отсортирована по возрастанию.
Я-новичок, и для меня это достаточно сложная задачка)
sergeek
Янв. 8, 2013 19:42:08
Eva_777
Буквенная часть отсортированного списка должна быть такой
какой?
во что такой список должен превратиться?
Eva_777
Янв. 8, 2013 19:44:00
“WTS1234, ACDW485, WTS72, SHR728, ACDW14, SHR16, WTS16” -исходный список
“WTS, ACDW, SHR” - Буквенная часть отсортированного списка
dimy44
Янв. 8, 2013 19:56:58
Я вижу строку а не список в вашем примере. Уточните задачу, если хотите получить нужный вам ответ. Вид списка на входе и на выходе.
sergeek
Янв. 8, 2013 19:58:00
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
Янв. 8, 2013 20:07:40
dimy44
Я вижу строку а не список в вашем примере. Уточните задачу, если хотите получить нужный вам ответ. Вид списка на входе и на выходе.
это списки) сорри)))
dimy44
Янв. 8, 2013 20:13:26
Eva_777
“WTS1234, ACDW485, WTS72, SHR728, ACDW14, SHR16, WTS16” -исходный список “WTS, ACDW, SHR” - Буквенная часть отсортированного списка
Если указанный “исходный список” является для Вас списком (list), то я - pass).
Eva_777
Янв. 8, 2013 20:15:33
Вы, конечно, извините, а если это будет строка, вы измените свое решение?)
dimy44
Янв. 8, 2013 20:22:14
Вот я и хочу, чтоб Вы четко, конкретно, написали пример того, что в начале, а что, в результате сортировки, в итоге. Буква в букву, без расплывчатых объяснений про цифровую и буквенную часть. Так можно будет понять задачу. И сэкономить время- свое и сообщества.
sergeek
Янв. 8, 2013 20:30:42
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