在Python中从列表生成字典

Jos*_*man 3 python dictionary list

这是原始列​​表:

['name', 'value', 'name', 'value', 'name', 'value']
Run Code Online (Sandbox Code Playgroud)

等等.我需要将名称/值对提取到字典中:

{'name': 'value', 'name': 'value', 'name': 'value'}
Run Code Online (Sandbox Code Playgroud)

有人可以详细说明最简单的方法吗?

Joh*_*ooy 5

如果L是原始列表,您可以使用zip(*[iter(L)]*2)将项目分组.的字典构造可以直接采取这种对一个可迭代

>>> L = ['name1', 'value1', 'name2', 'value2', 'name3', 'value3']
>>> dict(zip(*[iter(L)]*2))
{'name1': 'value1', 'name2': 'value2', 'name3': 'value3'}
Run Code Online (Sandbox Code Playgroud)

我不确定你的意思是什么更简单(更容易理解?).很难猜测你认为更简单,因为我不知道你在什么级别.这是一种不使用iter或的方式zip.如果你还不知道还有什么enumerate,你应该查一查.

>>> d = {}
>>> for i, item in enumerate(L):
...     if i % 2 == 0:
...         key = item
...     else:
...         d[key] = item
... 
>>> d
{'name1': 'value1', 'name2': 'value2', 'name3': 'value3'}
Run Code Online (Sandbox Code Playgroud)