Python: From Lists, Build Dict With Key:value Ratio Not 1:1
Pardon me for not finding a better title. Say I have two lists: list1 = ['123', '123', '123', '456'] list2 = ['0123', 'a123', '1234', 'null'] which describe a mapping (see this qu
Solution 1:
from collections importdefaultdictdd= defaultdict(list)
for key, val in zip(list1, list2):
dd[key].append(val)
Solution 2:
defaultdict()
is your friend:
>>>from collections import defaultdict>>>result = defaultdict(tuple)>>>for key, value inzip(list1, list2):... result[key] += (value,)...
This produces tuples; if lists are fine, use Jon Clement's variation of the same technique.
Solution 3:
>>>from collections import defaultdict>>>list1 = ["123", "123", "123", "456"]>>>list2 = ["0123", "a123", "1234", "null"]>>>d = defaultdict(list)>>>for i, key inenumerate(list1):... d[key].append(list2[i])...>>>d
defaultdict(<type 'list'>, {'123': ['0123', 'a123', '1234'], '456': ['null']})
>>>
Post a Comment for "Python: From Lists, Build Dict With Key:value Ratio Not 1:1"