簡體   English   中英

查詢Python字典以從元組中獲取值

[英]Query Python dictionary to get value from tuple

假設我有一個Python字典,但值是一個元組:

例如

dict = {"Key1": (ValX1, ValY1, ValZ1), "Key2": (ValX2, ValY2, ValZ2),...,"Key99": (ValX99, ValY99, ValY99)}

我想從元組中只檢索第三個值,例如。 上例中的ValZ1,ValZ2或ValZ99。

我可以使用.iteritems() ,例如:

for key, val in dict.iteritems():
       ValZ = val[2]

但是,有更直接的方法嗎?

理想情況下,我想按鍵查詢字典並僅返回元組中的第三個值...

例如

dict[Key1] = ValZ1而不是我目前得到的,這是dict[Key1] = (ValX1, ValY1, ValZ1) ,不可調用...

有什么建議?

只需保持索引:

>>> D = {"Key1": (1,2,3), "Key2": (4,5,6)}
>>> D["Key2"][2]
6

使用元組解包:

for key, (valX, valY, valZ) in dict.iteritems():
       ...

人們經常使用

for key, (_, _, valZ) in dict.iteritems():
       ...

如果他們只對元組中的一個項目感興趣。 但是,如果將gettext模塊用於多語言應用程序,這可能會導致問題,因為此模型設置了一個名為_的全局函數。

由於元組是不可變的,因此您無法僅設置一個項目

d[key][0] = x

你必須先打開包裝:

x, y, z = d[key]
d[key] = x, newy, z

使用生成器表達式!

for val in (x[2] for x in dict):
    print val

您不需要使用iteritems,因為您只查看值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM