У меня есть список каналов:
channels = ['1LT1', '1LT2', '1LT3', '1LT4', '1LT5', '2LA1', '2LA2', '2LA3', '3LH1', '3LH5', '4LT1', '4LT2', '4LT3', '5LH1', '5LH2', '4LT10']
Мне нужно написать алогрит, чтобы оставить только дистальные каналы.Это означает, что для каждого типа канала («1LT», «2LA», «3LH», «4LT» и т. Д.) Мне нужен только канал с наибольшим последним номером.Лучший способ - вернуть индексы этих каналов.Например, для вышеупомянутого списка результаты должны быть:
distal_i = [4, 7, 9, 14, 15]
Я думаю, что я могу сделать это с помощью регулярного выражения, разделив так:
labels = [re.findall('(\d+)(\w+?)(\d+)', channel) for channel in channels]
Это дает мне:
[('1', 'LT', '1'),
('1', 'LT', '2'),
('1', 'LT', '3'),
('1', 'LT', '4'),
('1', 'LT', '5'),
('2', 'LA', '1'),
('2', 'LA', '2'),
('2', 'LA', '3'),
('3', 'LH', '1'),
('3', 'LH', '5'),
('4', 'LT', '1'),
('4', 'LT', '2'),
('4', 'LT', '3'),
('5', 'LH', '1'),
('5', 'LH', '2'),
('4', 'LT', '10')]
Но тогда я действительно застрял.Может кто-нибудь дать мне несколько советов по созданию хорошего алгоритма?
Я очень благодарен за любую идею!