Есть одна задача
https://stepik.org/lesson/3363/step/2?unit=1135 вот задача.
вот мой код:
dictionary = {}
letters = []
numbers = []
numersof = ()
l = ''
r = ''
with open('dataset_3363_2.txt') as inf:
string = inf.readline()
for i in string:
if i.isalpha():
letters += i
for i in string:
if i.isdigit():
l += str(i)
elif i.isalpha():
l += str(' ')
for i in l.split():
numbers.append(i)
dictionary = dict(zip(letters, numbers))
for i in dictionary:
r += i * int(dictionary[i])
with open('output.txt', 'w') as out:
out.write(r)
Мне не нужны гениальные решения в три строки, помогите пожалуйста разобраться со своим кодом. ИМХО: Мой код не проходит проверку из-за того, что после dict(zip(letters, numbers), у полученного ключи и значения не совпадают со списками numbers и letters.
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
у вашего кода огромный недостаток в том, что он просто не способен работать с повторяющимися буквами, например a3b1a2, потому что словарь хранит уникальные ключи
поэтому вопрос - зачем вам вообще словарь - формируйте строку по ходу анализа входной строки
string = "a3b1a2"
res = ''
str_count = ''
letter = ''
for i in string:
if i.isdigit():
str_count += i
elif i.isalpha():
res += int(str_count) * letter if letter != '' else ''
str_count = ''
letter = i
res += int(str_count) * letter if letter != '' else ''
print(res)