Query Python dictionary to get value from tuple

前端 未结 3 1195
眼角桃花
眼角桃花 2021-01-05 04:41

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         


        
相关标签:
3条回答
  • 2021-01-05 04:51

    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
    
    0 讨论(0)
  • 2021-01-05 05:03

    Just keep indexing:

    >>> D = {"Key1": (1,2,3), "Key2": (4,5,6)}
    >>> D["Key2"][2]
    6
    
    0 讨论(0)
  • 2021-01-05 05:08

    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.

    0 讨论(0)
提交回复
热议问题