将列表转换为dict,列表项作为键,列表索引作为python中的值

时间:2013-09-19 06:47:52

标签: python list python-2.7 dictionary

我想转型

l = ['a','b','c','d']

d = {'a': 0, 'b': 1, 'c': 2, 'd': 3}

我到目前为止的最佳解决方案是:

d = {l[i]:i for i in range(len(l))}

有更优雅的方法吗?

2 个答案:

答案 0 :(得分:9)

d = {e:i for i, e in enumerate(l)}

编辑:正如@LeonYoung建议的那样,如果你想与python<兼容2.7(尽管有标签),你必须使用

d = dict((e, i) for i, e in enumerate(l))

答案 1 :(得分:1)

使用itertools,只是为了好玩

>>> from itertools import count, izip
>>> L = ['a', 'b', 'c', 'd']
>>> dict(izip(L, count()))
{'a': 0, 'c': 2, 'b': 1, 'd': 3}