用Python将列表转换为字典

用Python将列表转换为字典

假设我有一份名单a在Python中,其条目可以方便地映射到字典。每个偶数元素表示字典的键,下面的奇数元素是值

例如,

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

我想把它转换成字典b,在哪里

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

实现这一点的最干净的语法方法是什么?


凤凰求蛊
浏览 1704回答 3
3回答

拉风的咖菲猫

对于这一点,您可以很容易地使用词典理解:a = ['hello','world','1','2']my_dict = {item : a[index+1] for index, item in enumerate(a) if index % 2 == 0}这相当于下面的for循环:my_dict = {}for index, item in enumerate(a):     if index % 2 == 0:         my_dict[item] = a[index+1]

翻过高山走不出你

b = dict(zip(a[::2], a[1::2]))如果a是很大的,您可能希望执行类似以下的操作,这样做不会产生任何像上面这样的临时列表。from itertools import izip i = iter(a)b = dict(izip(i, i))在Python3中,您也可以使用dict理解,但具有讽刺意味的是,我认为最简单的方法是使用range()和len()通常是一种代码气味。b = {a[i]: a[i+1] for i in range(0, len(a), 2)}所以iter()/izip()方法可能仍然是Python 3中最Pythonic的方法,尽管正如EOL在评论中所指出的,zip()在Python 3中已经很懒了,所以您不需要izip().i = iter(a)b = dict(zip(i, i))如果你想把它放在一条线上,你就得作弊,用分号。;-)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python