如何创建一个字典,其中键是列表中的元素,值是从1到n的数字?

时间:2017-07-28 01:52:17

标签: python dictionary

假设我有一个列表l1 = [a,b,c,d,e],我想将它映射到包含以下{a:1,b:2,c:3,d的字典:4,e:5}

我知道如何以一种非常幼稚的方式做到这一点,但我想更多'pythonic'

天真的方式:

dic = {}
j = 1
for i in list1:
    dic[i] = j
    j += 1

2 个答案:

答案 0 :(得分:4)

如何使用词典理解:

>>> {v: k for k, v in enumerate(l1, 1)}
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

答案 1 :(得分:0)

只是为了弥补之前的问题...您可以将dict类型的构造函数与itertools.countzip一起使用:

>>> L1 = ['a','b','c','d']
>>> from itertools import count
>>> dict(zip(L1, count(1)))
{'c': 3, 'b': 2, 'a': 1, 'd': 4}