Let\'s say that I have a Python dictionary, but the values are a tuple:
E.g.
dict = {\"Key1\": (ValX1, ValY1, ValZ1), \"Key2\": (ValX2, ValY2, ValZ2
Use tuple unpacking:
for key, (valX, valY, valZ) in dict.iteritems():
...
Often people use
for key, (_, _, valZ) in dict.iteritems():
...
if they are only interested in one item of the tuple. But this may cause problem if you use the gettext
module for multi language applications, as this model sets a global function called _
.
As tuples are immutable, you are not able to set only one item like
d[key][0] = x
You have to unpack first:
x, y, z = d[key]
d[key] = x, newy, z
Just keep indexing:
>>> D = {"Key1": (1,2,3), "Key2": (4,5,6)}
>>> D["Key2"][2]
6
Using a generator expression!
for val in (x[2] for x in dict):
print val
You don't need to use iteritems because you're only looking at the values.