Pythonic方法将字符串列表转换为字典,奇数索引字符串作为键,偶数索引字符串作为值?

我有一个从某处解析的字符串列表,格式如下:

[key1, value1, key2, value2, key3, value3, ...]

我想基于这个列表创建一个字典,如下所示:

{key1:value1, key2:value2, key3:value3, ...}

具有索引偏移的普通for循环可能会成功,但我想知道是否有Pythonic这样做的方法.列表理解似乎很有趣,但我似乎无法找到如何将它们应用于这个特定问题.

有任何想法吗?

最佳答案
你可以试试:

dict(zip(l[::2], l[1::2]))

说明:我们将列表分成两个列表,一个是偶数和一个奇数元素,从第一个或第二个元素(即l [:: 2]和l [1]开始,从两个步骤中取出它们:: 2]).然后我们使用内置于两个列表的zip到一个对列表中.最后,我们调用dict从这些键值对创建一个字典.

这是〜4n的时间和~4n的空间,包括最后的字典.但它可能比循环更快,因为zip,dict和切片操作符是用C语言编写的.

转载注明原文:Pythonic方法将字符串列表转换为字典,奇数索引字符串作为键,偶数索引字符串作为值? - 代码日志