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