Вы получаете первый словарь с
>>> s = "Hello"
>>> d = dict.fromkeys(s.upper(), 0)
>>> d
>>> {'E': 0, 'H': 0, 'L': 0, 'O': 0}
Обратите внимание, что ключ 'L'
появляется только один раз, потому что ключи словаря уникальны.
Поэтому создать второй нужный словарь невозможно.
Но если вам важна только последняя строка, создавать какой-либо диктат не нужно, потому что:
>>> ''.join(c*i for i, c in enumerate(s.upper(), 1))
>>> 'HEELLLLLLLOOOOO'
Если это выглядит сложно, просто используйте простой цикл for
.
>>> to_join = []
>>> for i, c in enumerate(s.upper(), 1):
...: to_join.append(c*i)
...:
>>> result = ''.join(to_join)
>>> result
>>> 'HEELLLLLLLOOOOO'