Попробуйте это:
def f(source, lst):
return "".join(source[start - 1:end] for start, end in lst)
Что это будет делать, так это перебирать lst
, извлекая кортеж в start
и end
на каждой итерации. Затем он создаст новую строку в виде среза из строки source
, от start - 1
до end
(мы используем start - 1
, потому что вы показали, что 1 означает первый символ, но python использует 0-indexing, поэтому мы должен вычесть один). Наконец, мы объединяем все строки, используя "".join()
.
Если вы используете более старую версию Python, которая не поддерживает синтаксис генератора, используйте вместо этого:
def f(source, lst):
return "".join([source[start - 1:end] for start, end in lst])
Он работает точно так же, но вместо работы с генератором он явно создает список, к которому присоединяются.