Создание словаря из списка
есть список:
['красное', 'яблоко', 'круглое', '', 'красный', 'помидор', 'круглый', '', '', 'морковь', 'длинная', '', 'зеленый', 'арбуз', 'круглый', '']
Каждый четвертый элемент списка - это разделитель.
Из этого списка нужно получить словарь вида:
{'яблоко': 'красное', 'круглое',
'помидор': 'красный', 'круглый',
'морковь': '', 'длинная',
'арбуз': 'зеленый', 'круглый'}
Пытаюсь использовать join, но нужного результата достичь не могу, заранее спасибо за ответы.
Ответы (2 шт):
Автор решения: insolor
→ Ссылка
vegs = ['красное', 'яблоко', 'круглое', '', 'красный', 'помидор', 'круглый', '', '', 'морковь', 'длинная', '', 'зеленый', 'арбуз', 'круглый', '']
d = dict()
for i in range(0, len(vegs), 4):
d[vegs[i+1]] = (vegs[i], vegs[i+2])
print(d)
Вывод:
{'яблоко': ('красное', 'круглое'), 'помидор': ('красный', 'круглый'), 'морковь': ('', 'длинная'), 'арбуз': ('зеленый', 'круглый')}
Автор решения: MaxU
→ Ссылка
res = {data[i]:(data[i-1], data[i+1]) for i in range(1, len(data), 4)}
результат:
In [10]: res
Out[10]:
{'яблоко': ('красное', 'круглое'),
'помидор': ('красный', 'круглый'),
'морковь': ('', 'длинная'),
'арбуз': ('зеленый', 'круглый')}