2

The question is This is what I have so far:

dict(nafta_capitals) = canadian_capitals, mexican_capitals, us_capitals

Given three dictionaries, associated with the variables , canadian_capitals, mexican_capitals, and us_capitals, that map provinces or states to their respective capitals, create a new dictionary that combines these three dictionaries, and associate it with a variable , nafta_capitals.

  • I'd recommend starting with the [documentation](https://docs.python.org/2/library/stdtypes.html#mapping-types-dict). – glibdud Nov 19 '15 at 13:14
  • what do you mean by combining? you want to have all the keys of all those dictonaries in nafta_capitals or have those dictionaries included as values of nafta_capitals? – Paul K. Nov 19 '15 at 13:19

1 Answers1

0

You may need to use defaultdict- Here nafta is used as key to the three ( canadian_capitals, mexican_capitals, us_capitals) as below-

>>>dic = defaultdict(list)
>>>lst = ['nafta1', 'canadian_capitals1', 'mexican_capitals1', 'us_capitals1', 'nafta2', 'canadian_capitals2', 'mexican_capitals2', 'us_capitals2']
>>>grouped_lst = [lst[i:i+4] for i in range(0,len(lst),4)]
>>>[['nafta1', 'canadian_capitals1', 'mexican_capitals1', 'us_capitals1'], ['nafta2', 'canadian_capitals2', 'mexican_capitals2', 'us_capitals2']]
>>>for i in grouped_lst:dic[i[0]]=i[1:]
>>>dic.items()
>>>[('nafta1', ['canadian_capitals1', 'mexican_capitals1', 'us_capitals1']), ('nafta2', ['canadian_capitals2', 'mexican_capitals2', 'us_capitals2'])]
>>>for i in dic.keys():print dic[i]
>>>['canadian_capitals1', 'mexican_capitals1', 'us_capitals1']
['canadian_capitals2', 'mexican_capitals2', 'us_capitals2']
Learner
  • 5,192
  • 1
  • 24
  • 36