У меня есть список, который выглядит примерно так:
list1 = ['390140', 'string3', 'string2', '631019', 'string1', '', '6059152', 'string4', 'string5', '', '6951201', 'string6']
Я должен преобразовать этот список в список словарей, как показано ниже:
list2 = [{'code':'390140','description': 'string3 string2'}, {'code':'631019','description':'string1 '},{'code':'6051952','description': 'string4 string5', ...]
, тогда как каждая цифра являетсяcode
и следующие строки description
. Я попытался индексировать цифры и затем разделить основной список на подсписки, как показано в моем подходе ниже. Этот подход не работает.
#x = [item for item in list1 if item.isdigit()]
idx = [idx for idx, item in enumerate(list1) if item.isdigit()]
for i in idx:
list2.append({'code': list1[i], 'description': ' '.join(list1[idx[i]:idx[i+1]])})
list2
- это вывод, который я хочу получить.