Python один вкладыш для создания словаря из списка - PullRequest
0 голосов
/ 26 июня 2018

Я изучаю словарное понимание и написал следующий код.Вывод списка «строк» ​​выглядит следующим образом:

[['Color', 'Blue', 'Model', 'Ford'], ['Color', 'Green', 'Model', 'Honder'], ['Color', 'Pink', 'Model', 'peugeot']]

'

#!/Library/Frameworks/Python.framework/Versions/2.7/bin/python

import pprint
d={}

FILE='File.txt'
with open(FILE, 'r') as Data:

    lines = [line.split() for line in Data ]
    #print lines

    for x in lines:
        d[x[0]] = x[1]
        d[x[2]] = x[3]

        pprint.pprint(d)

В основном я пытаюсь выяснить, как я могу преобразовать вышеуказанный цикл for в одну строку.

Пока что я попробовал следующий код:

e = {x[0]:x[1] for x in lines}

Но это дало бы мне только самую последнюю запись в списке.

1 Ответ

0 голосов
/ 26 июня 2018

Вот чистое решение, использующее третью форму dict constructor :

>>> from itertools import izip
>>> l=[['Color', 'Blue', 'Model', 'Ford'], ['Color', 'Green', 'Model', 'Honder'], ['Color', 'Pink', 'Model', 'peugeot']]
>>> [dict(izip(d[::2], d[1::2])) for d in l]
[{'Color': 'Blue', 'Model': 'Ford'}, {'Color': 'Green', 'Model': 'Honder'}, {'Color': 'Pink', 'Model': 'peugeot'}]
>>>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...