我想变身
l = ['a','b','c','d']
到
d = {'a': 0, 'b': 1, 'c': 2, 'd': 3}
到目前为止,我最好的解决方案是:
d = {l[i]:i for i in range(len(l))}
有没有更优雅的方法来做到这一点?
我想变身
l = ['a','b','c','d']
到
d = {'a': 0, 'b': 1, 'c': 2, 'd': 3}
到目前为止,我最好的解决方案是:
d = {l[i]:i for i in range(len(l))}
有没有更优雅的方法来做到这一点?
d = {e:i for i, e in enumerate(l)}
编辑:正如@LeonYoung 所建议的,如果你想兼容python < 2.7(尽管有标签),你必须使用
d = dict((e, i) for i, e in enumerate(l))
,itertools
只是为了好玩
>>> from itertools import count, izip
>>> L = ['a', 'b', 'c', 'd']
>>> dict(izip(L, count()))
{'a': 0, 'c': 2, 'b': 1, 'd': 3}