Create dictionary based of x items per key from two lists

rajanbond at gmail.com rajanbond at gmail.com
Mon Feb 2 14:00:36 EST 2015


On Saturday, 31 January 2015 18:39:01 UTC-8, Jason Friedman  wrote:
> > I have two lists
> >
> > l1 =  ["a","b","c","d","e","f","g","h","i","j"]
> > l2 = ["aR","bR","cR"]
> >
> > l2 will always be smaller or equal to l1
> >
> > numL1PerL2 = len(l1)/len(l2)
> >
> > I want to create a dictionary that has key from l1 and value from l2 based on numL1PerL2
> >
> > So
> >
> > {
> > a:aR,
> > b:aR,
> > c:aR,
> > d:bR,
> > e:bR,
> > f:bR,
> > g:cR,
> > h:cR,
> > i:cR,
> > j:cR
> > }
> 
> Another possibility is:
> import itertools
> my_dict = {x:y for x,y in zip(list1, itertools.cycle(list2))}

Thank you Jason! Looks like this will work for my case. 

I had a solution working with count and num to keep track of the number of times l2 items are assigned as value but was looking for a more pythonic way.

count = 0
num = 0
map = {}
#    for item in l2:
#       while count < numL1PerL2 and num <= len(l1):
#          map[l1[num]] = item
#          count += 1
#          num += 1
#       count = 0
#    map[l1[num]] = l2[-1]




More information about the Python-list mailing list