python怎么把列表变成字典_在Python中将列表转换为字典

在Python中将列表转换为字典

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

例如,

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

我想把它转换成字典b,其中

b['hello'] = 'world'

b['1'] = '2'

什么是语法上最干净的方法来实现这一目标?

Mike asked 2019-05-15T22:56:58Z

13个解决方案

223 votes

b = dict(zip(a[::2], a[1::2]))

如果iter()/izip()很大,您可能会想要执行以下操作,而不会像上面那样创建任何临时列表。

from itertools import izip

i = iter(a)

b = dict(izip(i, i))

在Python 3中你也可以使用dict理解,但具有讽刺意味的是,我认为最简单的方法是使用iter()/izip()和zip(),这通常是代码气味。

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))

如果你想要它在一行,你将不得不作弊并使

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值