If you use a dictionary as an iterator (e.g. in a for statement), it traverses the keys of the dictionary. For example:
d = {'a': 1, 'b': 2, 'c':3}
for key in d:
print(key, d[key])
# c 3
# b 2
# a 1
The same is true when used in a comprehension
print([key for key in d])
# ['c', 'b', 'a']
The items() method can be used to loop over both the key and value simultaneously:
for key, value in d.items():
print(key, value)
# c 3
# b 2
# a 1
While the values() method can be used to iterate over only the values, as would be expected:
for key, value in d.values():
print(key, value)
# 3
# 2
# 1
Here, the methods keys(), values() and items() return lists, and there are the three extra methods iterkeys() itervalues() and iteritems() to return iteraters.