I'm trying to produce some code that produces for example:
{1:7,2:8,3:9,4:10}
and
{i:j for i in range(1,5) for j in range(7,11)}
produces
{1: 10, 2: 10, 3: 10, 4: 10}
how can I fix it?
thanks
Using zip
:
>>> dict(zip(range(1,5), range(7,11)))
{1: 7, 2: 8, 3: 9, 4: 10}
Using dict comprehension:
>>> {k:v for k, v in zip(range(1,5), range(7,11))}
{1: 7, 2: 8, 3: 9, 4: 10}
>>> {x:x+6 for x in range(1,5)}
{1: 7, 2: 8, 3: 9, 4: 10}
Your code is similar to following code:
ret = {}
for i in range(1,5):
for j in range(7,11):
ret[i] = j
# ret[i] = 10 is executed at last for every `i`.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With