Как сделать многократную подстановку из нескольких элементов на основе индекса в списках Python? - PullRequest
1 голос
/ 21 октября 2019

Предположим, у меня есть список Python, который выглядит следующим образом:

a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

И список кортежей с инструкциями замены в формате (начальный индекс, конечный индекс, элементы для замены)

b = [ (2,5,["x","y"])  , (8,8,["z"]) ]

Как сделать подстановку, не шутя с индексами? Я пытался, но не могу найти правильный подход.

Ожидаемый результат:

c = [0, 1, "x", "y", 6, 7, "z", 9]

1 Ответ

2 голосов
/ 21 октября 2019

В одну сторону:

deleted = 0
for start, end, replacement in b:
    a[start - deleted:end + 1 - deleted] = replacement
    deleted += (end + 1 - start) - len(replacement)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...