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] -- https://mail.python.org/mailman/listinfo/python-list