在Python中将列表转换为字典

发布于 2021-02-02 23:19:14

假设我a在Python中有一个列表,其条目方便地映射到字典。每个偶数元素代表字典的键,后面的奇数元素是值

例如,

a = ['hello','world','1','2']

我想将其转换为字典b,

b['hello'] = 'world'
b['1'] = '2'

语法上最干净的方法是什么?

关注者
0
被浏览
90
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。
    b = dict(zip(a[::2], a[1::2]))
    

    如果a很大,则可能需要执行以下操作,而不会像上面那样创建任何临时列表。

    from itertools import izip
    i = iter(a)
    b = dict(izip(i, i))
    

    在Python 3中,您也可以使用dict理解,但具有讽刺意味的是,我认为最简单的方法是使用range()and len(),通常是代码味道。

    b = {a[i]: a[i+1] for i in range(0, len(a), 2)}
    

    因此iter()/izip(),尽管EOL在注释中指出,该方法仍可能是Python 3中使用最多的Python语言,但在Python 3 zip()中已经很懒了,因此您不需要izip()

    i = iter(a)
    b = dict(zip(i, i))
    

    如果只想一行,就必须作弊并使用分号。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看