Является ли более эффективным создание словаря в Python, используя zip или понимание списка - PullRequest
2 голосов
/ 18 февраля 2011

Допустим, я хочу настроить базовую кодировку текста, используя словарь в python.

Сразу приходят на ум два способа - использование zip и понимание списка.

characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ .,!;"
dict_a = dict((x, characters[x]) for x in xrange(0, 31))
dict_b = dict(zip(xrange(0, 31), characters))

Что из этого более эффективно? (Реальная кодировка длиннее 31, это игрушечный пример). Разница значительна?

Или я ошибаюсь и должен использовать что-то, кроме словаря? (Мне нужно, чтобы я мог идти в обоих направлениях кодирования).

1 Ответ

7 голосов
/ 18 февраля 2011

Функция enumerate , вероятно, самый простой способ создать ваше dict:

dict_c = dict(enumerate(characters))

Однако я не уверен, что это дает вам, что вы не можете сделать со строкой. Следующее мне кажется эквивалентным:

>>> dict_c[3]
'D'
>>> characters[3]
'D'
...