У вас есть два {}
заполнителя, но только одна переменная. Поэтому вы должны сообщить тем заполнителям, что им нужно использовать один и тот же. Также по какой-то причине вы используете двойные скобки во втором заполнителе. Это используется для «экранирования» скобок, поэтому {{}}
станет {}
(и не будет фактически заполнителем).
Итак, после устранения этих двух проблем:
>>> list = ['a', 'b', 'c']
>>> for i in list:
print("foo_{i} = bar['{i}']".format(i=i))
# print("foo_{0} = bar['{0}']".format(i))
foo_a = bar['a']
foo_b = bar['b']
foo_c = bar['c']
Или с f-strings
(для Python >= 3.6
):
for i in list:
print(f"foo_{i} = bar['{i}']")
Чтобы лучше понять использование заполнителей, читайте больше на PyFormat , в частности, Basi c Форматирование для информации о позиционных заполнителях и Именованные заполнители для - хорошо названных заполнителей.