Самый питонский способ сделать это, какой я мог найти, это:
values = [1, 2, 3, 4, 5]
value = 3
replace = ['a', 'b', 'c']
def splice(values, value, replace):
result = [replace if x == value else x for x in values]
Где вы можете просто выбрать, какое значение заменить и чем.
Это, однако, в неплоский список. Если вам нужна квартира, это может быть полезно (взято из здесь ):
def flat_gen(x):
def iselement(e):
return not(isinstance(e, Iterable) and not isinstance(e, str))
for el in x:
if iselement(el):
yield el
else:
for sub in flat_gen(el): yield sub
Так что, если вы используете что-то вроде:
result_flat = list(flat_gen(result))
Он должен работать как положено.