Форум сайта python.su
0
Помогите, плиз, отсортировать такой список “WTS1234, ACDW485, WTS72, SHR728, ACDW14, SHR16, WTS16”
Буквенная часть отсортированного списка должна быть такой “WTS, ACDW, SHR”, а цифровая часть должна быть отсортирована по возрастанию.
Я-новичок, и для меня это достаточно сложная задачка)
Отредактировано Eva_777 (Янв. 8, 2013 19:42:17)
Офлайн
43
Eva_777какой?
Буквенная часть отсортированного списка должна быть такой
[1,4,3,'f',5,'q']
Офлайн
0
“WTS1234, ACDW485, WTS72, SHR728, ACDW14, SHR16, WTS16” -исходный список
“WTS, ACDW, SHR” - Буквенная часть отсортированного списка
Офлайн
Я вижу строку а не список в вашем примере. Уточните задачу, если хотите получить нужный вам ответ. Вид списка на входе и на выходе.
Офлайн
43
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,']
Офлайн
0
dimy44
Я вижу строку а не список в вашем примере. Уточните задачу, если хотите получить нужный вам ответ. Вид списка на входе и на выходе.
Офлайн
Eva_777Если указанный “исходный список” является для Вас списком (list), то я - pass).
“WTS1234, ACDW485, WTS72, SHR728, ACDW14, SHR16, WTS16” -исходный список “WTS, ACDW, SHR” - Буквенная часть отсортированного списка
Офлайн
0
Вы, конечно, извините, а если это будет строка, вы измените свое решение?)
Офлайн
Вот я и хочу, чтоб Вы четко, конкретно, написали пример того, что в начале, а что, в результате сортировки, в итоге. Буква в букву, без расплывчатых объяснений про цифровую и буквенную часть. Так можно будет понять задачу. И сэкономить время- свое и сообщества.
Офлайн
43
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
Отредактировано sergeek (Янв. 8, 2013 20:36:43)
Офлайн