["python","dictionary"]
Populating a dictionary using two for loops in Python

I'm trying to create a dictionary using two for loops. Here is my code: dicts = {} keys = range(4) values = ["Hi", "I", "am", "John"] for i in keys: for x in values: dicts[i] = x print(dicts) This outputs: {0: 'John', 1: 'John', 2: 'John', 3: 'John'} Why? I was planning on making it output: {0: 'Hi', 1: 'I', 2: 'am', 3: 'John'} Why doesn't it output that way and how do we make it output correctly?
dicts = {} keys = range(4) values = ["Hi", "I", "am", "John"] for i in keys: dicts[i] = values[i] print(dicts) alternatively In [7]: dict(list(enumerate(values))) Out[7]: {0: 'Hi', 1: 'I', 2: 'am', 3: 'John'}