Как создать значение: index dict из списка python?

У меня есть список:

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

Я хочу получить дикт:

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

Каков самый питонический способ получить это?


person yukashima huksay    schedule 04.01.2018    source источник
comment
Что вы пробовали? Затем мы можем сказать вам, является ли это Pythonic.   -  person Andy G    schedule 04.01.2018


Ответы (4)


Помогает ли вам следующее?

b = dict(map(lambda t: (t[1], t[0]), enumerate(a)))

Пример:

>>> dict(map(lambda t: (t[1], t[0]), enumerate(['a', 'b', 'c'])))
{'b': 1, 'c': 2, 'a': 0}
person tgwtdt    schedule 04.01.2018
comment
твой ответ быстрее или тот, что от Dark? - person yukashima huksay; 04.01.2018

Самый простой (и самый пифонический) способ сделать это:

b = dict(enumerate(a))
person L3viathan    schedule 04.01.2018
comment
Вы должны поменять местами ключ и значения. - person yukashima huksay; 04.01.2018
comment
В вашем вопросе целевой словарь имеет числа в качестве ключей. - person L3viathan; 04.01.2018
comment
О, ты прав. Название правильное, но я неправильно написал его в теле вопроса. Прости. - person yukashima huksay; 04.01.2018

a = ['a','b','c']
b = dict(enumerate(a))
print(b)

Он будет производить:

{0: 'a', 1: 'b', 2: 'c'}
person Nabeel Ahmad Khan    schedule 04.01.2018
comment
Вы должны поменять местами ключ и значения. - person yukashima huksay; 04.01.2018

используйте 1_:

a = ['a', 'b', 'c']
dict_a = {}
for x in a:
    dict_a[a.index(x)] = x
print(dict_a)
person keramat    schedule 04.01.2018