Not able to understand the output for dictionary comprehension in python

Viewed 33

the output for the code:

dict={k:v for k in range(1,4)  for v in range(1,3) }
print(dict)

out put is:

{1: 2, 2: 2, 3: 2}

but thought the output should be:

{1: 1, 2: 1, 3: 1}

why is it taking 2 for the value of v.

1 Answers

Python lets you use the same key multiple times in a dictionary comprehension, but obviously the final dictionary can only contain the key once. The associated value is the last one you specified, as per the Python reference manual, 6.2.7 Dictionary Displays:

When the comprehension is run, the resulting key and value elements are inserted in the new dictionary in the order they are produced.

Related