I'm trying to create a dictionary using 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?
32 Answers
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'} 2>>> dict(zip(keys, values)) {0: 'Hi', 1: 'I', 2: 'am', 3: 'John'} 4