Преобразование строки в аргументы для функции

alex77bel

Новичок
Пользователь
Ноя 20, 2022
8
1
3
Здравствуйте! Подскажите, возможно имеется функция, которая преобразует строку в аргументы для использования в функции, где нужно чтобы было без кавычек. Не знаю как правильно сформулировать.
Например, есть строки s='123456789' и index='2:5', как сделать из строки s срез print(s[<??какая-то функция??>(index)]), чтобы выдал 345. Без разбиения строки index на элементы, а напрямую.
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
932
208
43
20
Москва
Python:
def to_slice(line):
    return slice(*map(int, line.split(':')))

mas = [1, 2, 3, 4, 6]
mas[to_slice('1:4')]  # [2, 3, 4]
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 581
457
83
расскажите задачу, которую вы решаете, возможно есть другой способ, потому что сейчас это все выглядит стремно...
или так, наверное
Python:
s = '123456789'
index = '2:5'
print(s[int(index[0]):int(index[-1])])
 

alex77bel

Новичок
Пользователь
Ноя 20, 2022
8
1
3
Спасибо, это понятно. Я имел в виду как преобразовать формат str в такой, чтобы его напрямую можно было вставлять в s[<сюда>] одной переменной без нарезки [int(index[0]):int(index[-1])], т.е. s[index_1]. Как получить index_1 из index?
 

alex77bel

Новичок
Пользователь
Ноя 20, 2022
8
1
3
Это оно функция slice Спасибо!
 
  • Мне нравится
Реакции: Vershitel_sudeb

Форум IT Специалистов