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?
Dictionaries in Python First, a given key can appear in a dictionary only once. Duplicate keys are not allowed.
You can loop through a dictionary by using a for loop. When looping through a dictionary, the return value are the keys of the dictionary, but there are methods to return the values as well.
Dictionaries do not support duplicate keys. However, more than one value can correspond to a single key using a list.
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'}
>>> dict(zip(keys, values)) {0: 'Hi', 1: 'I', 2: 'am', 3: 'John'}
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