Как сложить поэлементно два словаря в Питоне?

В питоне у меня есть два одинаковых словаря, перечисляющих буквы английского алфавита. Как получить из них третий словарь, в котором каждая буква словаря1 будет комбинироваться с каждой буквой словаря2, как показано?
Dictionary1 = {0: 'A', 1: 'B', 2: 'C', 3: 'D',......., 25: 'Z'}
Dictionary2 = {0: 'A', 1: 'B', 2: 'C', 3: 'D',......., 25: 'Z'}
Dictionary3 = {0: 'AA', 1: 'AB', ......, 25: 'AZ', .....}

AA AB...AZ ...BA...BB..BZ
  • Вопрос задан
  • 5041 просмотр
Пригласить эксперта
Ответы на вопрос 3
- Словарь, ключами которого является непрерывное подмножество целых чисел, эквивалентен множеству или списку, если вам нужен порядок элементов.
- Описанная вами операция называется декартовым произведением множеств.
- Список букв алфавита необязательно задавать явно.

import string, itertools
alphabet = string.uppercase
product = map(''.join, itertools.product(alphabet, alphabet))
print product


Ну если очень хочется индексов...

print dict(enumerate(product))
Ответ написан
Комментировать
vvpoloskin
@vvpoloskin
Инженер связи
Dictionary3 = {}
for i in Dictionary1:
   Dictionary3[i] = Dictionary1[i] + Dictionary2[i]
Ответ написан
@throughtheether
human after all
Python2.7:
>>> Dictionary1 = {0: 'A', 1: 'B', 2: 'C',}
>>> Dictionary2 = {0: 'A', 1: 'B', 2: 'C',}
>>> max_key=max(Dictionary1.iterkeys())
>>> {k1+k2*max_key:'%s%s'%(v2,v1) for k1,v1 in Dictionary1.iteritems() for k2,v2 in Dictionary2.iteritems()}
{0: 'AA', 1: 'AB', 2: 'AC', 3: 'BB', 4: 'BC', 5: 'CB', 6: 'CC'}

Если этот код не подходит, то уточните, что и зачем вам надо сделать. В частности, как соотносятся значение нового ключа и двух старых.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы