Я пытаюсь вставить значение в список.
interleave(1, ['A', 'B', 'C']) -> [1, 'A', 1, 'B', 1, 'C']
Существует несколько способов решения этой проблемы, но я подумал, что more_itertools.interleave будет наиболее читаемый Однако для использования этой функции мне нужно создать генератор, который выдает 1
навсегда. Ясно, что это можно сделать с помощью
def gen1():
while True:
yield 1
, но это кажется более сложным, чем необходимо.
Существует ли элегантный способ заменить ...
во фрагменте ниже, чтобы создать встроенный генератор такой, что
res = more_itertools.interleave(..., ['A', 'B', 'C'])
assert list(res) == [1, 'A', 1, 'B', 1, 'C']
... = (1 for _ in ['A', 'B', 'C'])
явно работает, но я бы не назвал это элегантным.