Using zip
:
>>> dict(zip(range(1,5), range(7,11))) {1: 7, 2: 8, 3: 9, 4: 10}
Using dict understanding :
>>> {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}
Why your code is not working:
Your code is similar to the 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`.
source share