繁体   English   中英

Python:如何从简单的键和值列表构建一个dict

[英]Python: how to build a dict from plain list of keys and values

我有一个值列表,如:

["a", 1, "b", 2, "c", 3]

我想从中建立这样一个词:

{"a": 1, "b": 2, "c": 3}

在Python中使用它的自然方式是什么?

>>> x = ["a", 1, "b", 2, "c", 3]
>>> i = iter(x)
>>> dict(zip(i, i))
{'a': 1, 'c': 3, 'b': 2}

这似乎相当简洁,但我不会称之为非常自然:

>>> l = ["a", 1, "b", 2, "c", 3]
>>> dict(zip(l[::2], l[1::2]))
{'a': 1, 'c': 3, 'b': 2}

您可以像这样zip备用元素的列表

>>> lst = ["a", 1, "b", 2, "c", 3]
>>> dict(zip(lst[::2], lst[1::2])
{'a': 1, 'c': 3, 'b': 2}

其他方式:

>>> l = ["a", 1, "b", 2, "c", 3]
>>> dict([l[i:i+2] for i in range(0,len(l),2)])
{'a': 1, 'c': 3, 'b': 2}

我真的没有看到很多情况会遇到这个问题,因此没有“自然”解决方案。 然而,一个应该为你做的技巧的快速衬垫:

   {input_list[2*i]:input_list[2*i+1] for i in range(len(input_list)//2)}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM