это не имеет ничего общего с format
.*
распаковывает аргументы, поэтому, если в вашем списке, скажем, 4 заполнителя и 4 элемента, format
распаковывает аргументы и заполняет слоты.Пример:
args = range(4)
print(("{}_"*4).format(*args))
печатает:
0_1_2_3_
Во втором случае:
print(new_string.format(*sum_string))
аргументы для распаковки являются символами изстрока (строка рассматривается как итеративная при распаковке аргумента), и так как есть только один заполнитель, форматируется и печатается только первый символ (и в отличие от предупреждений, которые можно получить с помощью компиляторов C и printf
, python нене предупреждаю вас о том, что ваш список аргументов слишком длинный, он просто не использует их все)
С несколькими заполнителями вы могли бы засвидетельствовать это:
>>> args = "abcd"
>>> print("{}_{}_{}_{}").format(*args))
a_b_c_d