查询Python字典以从tup获取值

2024-03-28 22:07:29 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个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)。。。

有什么建议吗?


Tags: 字典valdict元组key2key1iteritemsvalx1
3条回答

使用元组解包:

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,因为您只需要查看值。

继续索引:

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

相关问题 更多 >