2014-10-09 19 views
0

Мне было интересно, есть ли способ нарезать строку длиной в 400 символов, найдя одно уникальное письмо на другую уникальную букву. без необходимости рассчитывать на это письмо, чтобы найти свое численное место.Python 2.7.8 строчная нарезка буквой?

list = [ep72lwnVSUxlGNPython7cyEKZjBqnQOfFwAB7O19FBlcSIuNXj24NfL0XyZTNL4ynjMFMY1CoOWhc5Rs9NlMCYSv4oIZruJ6ulJQjEJ7wLdt1qrEAPH5EstellatumefwuseFxELh7hHAtecwRLYeyShpFaodZBDekTiq6dIa6pSWNskixhZLab. 
14 19 118 126] 
+1

Не могли бы вы уточнить? Пример ввода и вывода будет полезен. – damgad

+0

ДАННЫЕ: Строка s длиной не более 200 букв и четырех целых чисел a, b, c и d. Возврат: срез этой строки от индексов от a до b и c до d (с промежутком между ними), включительно. –

+0

так ... 'return s [a: b + 1] + s [c: d + 1]'? Куда входит часть «уникального письма»? – Kevin

ответ

0

То, как была сформулирована проблема, было забавно, но я понял это с помощью вашего парня.

data = 'ep72lwnVSUxlGNPython7cyEKZjBqnQOfFwAB7O19FBlcSIuNXj24NfL0XyZTNL4ynjMFMY1CoOWhc5Rs9NlMCYSv4oIZruJ6ulJQjEJ7wLdt1qrEAPH5EstellatumefwuseFxELh7hHAtecwRLYeyShpFaodZBDekTiq6dIa6pSWNskixhZLab'

data[14:19+1] + " " + data[118:126+1] 

выход был

+0

В чем была проблема, которую вы поняли? Есть ли что-нибудь новое в вашем ответе? – damgad

+0

Это была ошибка обрезания строки конкатенации между двумя диапазонами в строке в диапазоне и добавление пробела между двумя диапазонами для ответа. –

0

Если я corretly понял:

data = 'ep72lwnVSUxlGNPython7cyEKZjBqnQOfFwAB7O19FBlcSIuNXj24NfL0XyZTNL4ynjMFMY1CoOWhc5Rs9NlMCYSv4oIZruJ6ulJQjEJ7wLdt1qrEAPH5EstellatumefwuseFxELh7hHAtecwRLYeyShpFaodZBDekTiq6dIa6pSWNskixhZLab' 
indices = [14, 19, 118, 126] 

Это будет работать, даже если вы хотите больше 2 строки

print " ".join([ data[indices[2*i]:indices[2*i+1]+1] for i in range(0,len(indices)/2)]) 

или (если у вас всегда есть 4 (например indices=[14, 19, 118, 126, 140, 145].) индексы):

print data[indices[0]:indices[1]+1] + " " + data[indices[2]:indices[3]+1] 
+0

ok в вашей строке данных говорят, что я хотел разделиться от буквы, которая встречается только один раз с другой буквой это происходит только один раз. –

+0

Все еще не совсем понятно, но вы можете получить индексы букв, которые встречаются только один раз: 'f = filter (lambda x: data.count (x) == 1, data) indices = map (lambda x: data .find (x), f) print indices'. Вы получите [7, 9, 12, 24, 56, 88, 126, 160, 183]. – SukkoPera

Смежные вопросы