Как заменять объекты на несколько элементов из массива?

Вот код:

txt = '5+5 == &{5+5}, 6+6 == &{6+6}'
nums = [10, 12];
for i in nums:
   txt = txt.replace(...

Я хочу заменить &{5+5} на элемент из массива nums но как? Пожалуйста решите! Заранее спасибо!


Ответы (1 шт):

Автор решения: SergFSM

с помощью re.sub получится красивее, а если через replace, то у меня получилось такое безобразие:

txt = '5+5 == &{5+5}, 6+6 == &{6+6}'
nums = [10, 12]

txt = ','.join(i.replace(i[i.index('&'):], str(j)) for i,j in zip(txt.split(','), nums))

print(txt)  # 5+5 == 10, 6+6 == 12

UPD с регуляркой вот так получилось:

from re import sub

nums = iter(nums)
txt = sub(r'&\{.+?\}', lambda m: str(next(nums)), txt)
→ Ссылка