Enumerate Dictionary Iterating Key and Value
Assuming you just want to enumerate the key/value pairs (and don't need the index i
), you can iterate d.items()
directly:
d = {'A': 1, 'B': 2, 'C': 3, 'D': 4}
for k, v in d.items():
print(k, v)
This prints something like
A 1
C 3
B 2
D 4
Note that entries are not necessarily ordered.
Given a dictionary d
:
d
# {'A': 1, 'B': 2, 'C': 3, 'D': 4}
You can use a tuple to unpack the key-value pairs in the for
loop header.
for i, (k, v) in enumerate(d.items()):
print(i, k, v)
# 0 A 1
# 1 B 2
# 2 C 3
# 3 D 4
To understand why the extra parens are needed, look at the raw output from enumerate
:
list(enumerate(d.items()))
# [(0, ('A', 1)), (1, ('B', 2)), (2, ('C', 3)), (3, ('D', 4))]
The key-value pairs are packaged inside tuples, so they must be unpacked in the same way.