#python #sorting
#python #сортировка
Вопрос:
Существует ли аналог array_flip (php) для Python 3.x?
От
obj = ['a', 'c', 'b' ]
Для
{'a': 1, 'c':2, 'b': 3}
Комментарии:
1.
{i:j 1 for j,i in enumerate(obj)}
2. Что происходит, когда у вас есть два
a
s? Должен ли быть изменен самый низкий индекс или новый?
Ответ №1:
Вы можете использовать понимание списка вместе с dict
конструктором следующим образом:
>>> obj = [ 'a', 'c', 'b' ]
>>> dict((x, i 1) for i, x in enumerate(obj))
{'a': 1, 'c': 2, 'b': 3}
Как отмечено в комментариях, вы также можете использовать простое понимание dict:
>>> { x: i 1 for i, x in enumerate(obj) }
{'a': 1, 'c': 2, 'b': 3}
Комментарии:
1. вы можете использовать dict_comprehension вместо list_comprehension
2.
enumerate
имеетstart
параметр:{x:i for i,x in enumerate(obj, start=1)}
.3. Спасибо! Красиво и просто)