Преобразовать строку в словарь списков c N количеством символов

Дана строка:

result = 'X34-/1744XX23--4/'

на выходе должно выглядеть так:

{1:(X, -), 2:(3, 4), 3:(-, /), 4:(1, 7), 5:(4, 4), 6:(X, -), 7:(X, -), 8:(2, 3), 9:(-, -), 10:(4, /)}

проблема в том, что не могу понять, как подставить '-' после 'X'

Так как есть условие, что если в строке есть 'X', то после него должно быть всегда '-'

я делаю так:

result = 'X34-/1744XX23--4/'
analized_res = {}
for i, k in enumerate(zip(result[0::2], result[1::2]), start=1):
    analized_res[i] = k
print(analized_res)

на выходе:

{1: ('X', '3'), 2: ('4', '-'), 3: ('/', '1'), 4: ('7', '4'), 5: ('4', 'X'), 6: ('X', '2'), 7: ('3', '-'), 8: ('-', '4')}

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

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

этот код помог:

result = 'X34-/1744XX23--4/'
analized_res = {}
for x in result:
    for i, k in enumerate(zip(result.replace('X', 'X-')[0::2], result.replace('X', 'X-')[1::2]), start=1):
        analized_res[i] = k
print(analized_res)

на выходе:

{1: ('X', '-'), 2: ('3', '4'), 3: ('-', '/'), 4: ('1', '7'), 5: ('4', '4'), 6: ('X', '-'), 7: ('X', '-'), 8: ('2', '3'), 9: ('-', '-'), 10: ('4', '/')}
→ Ссылка