In [26]: test = {}
In [27]: test[\"apple\"] = \"green\"
In [28]: test[\"banana\"] = \"yellow\"
In [29]: test[\"orange\"] = \"orange\"
In [32]: for fruit, colour
In Python 2 you'd do:
for fruit, color in test.iteritems():
# do stuff
In Python 3, use items()
instead (iteritems()
has been removed):
for fruit, color in test.items():
# do stuff
This is covered in the tutorial.
Change
for fruit, colour in test:
print "The fruit %s is the colour %s" % (fruit, colour)
to
for fruit, colour in test.items():
print "The fruit %s is the colour %s" % (fruit, colour)
or
for fruit, colour in test.iteritems():
print "The fruit %s is the colour %s" % (fruit, colour)
Normally, if you iterate over a dictionary it will only return a key, so that was the reason it error-ed out saying "Too many values to unpack".
Instead items
or iteritems
would return a list of tuples
of key value pair
or an iterator
to iterate over the key and values
.
Alternatively you can always access the value via key as in the following example
for fruit in test:
print "The fruit %s is the colour %s" % (fruit, test[fruit])
The normal for key in mydict
iterates over keys. You want to iterate items:
for fruit, colour in test.iteritems():
print "The fruit %s is the colour %s" % (fruit, colour)