python - 在 Python 中从列表生成字典

标签 python list dictionary

这是原始列​​表:

['name', 'value', 'name', 'value', 'name', 'value']

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

{'name': 'value', 'name': 'value', 'name': 'value'}

有人可以详细说明执行此操作的最简单方法吗?

最佳答案

如果 L 是您的原始列表,您可以使用 zip(*[iter(L)]*2)将项目分组。 dict constructor可以直接采用此类对的可迭代

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

我不确定您所说的更简单(更容易理解?)是什么意思。很难猜到你认为更简单,因为我不知道你处于什么水平。这是一种不使用 iterzip 的方法。如果你不知道什么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'}

关于python - 在 Python 中从列表生成字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26600418/

相关文章:

python - SQLAlchemy 外键找不到表

python - 哪个是最推荐的 Python Twitter 库,用于以编程方式更新我自己的 Twitter 流?

python - "global name ' _ ' is not defined"在提高 ValidationError 期间

python - 在 Python 中的列表上循环函数

python - 带有嵌套列表的字典理解,防止覆盖

python - pandas DataFrame 中列的更短符号

python - 当模块分配给变量时如何使用模块中的方法

java - 如何将列表转换为唯一列表?

python - 如何将字符串拆分为字典并返回特定的字典值?

c++ - 通过map key检查最后插入的项目是否存在