假设我有一个Python字典,但值是一个元组:
E.g。
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]
然而,是否有更直接的方法?
理想情况下,我想按键查询字典并仅返回元组中的第三个值...
e.g。
dict[Key1] = ValZ1
而不是我目前得到的,dict[Key1] = (ValX1, ValY1, ValZ1)
不可调用...
有什么建议吗?
答案 0 :(得分:11)
只需保持索引:
>>> D = {"Key1": (1,2,3), "Key2": (4,5,6)}
>>> D["Key2"][2]
6
答案 1 :(得分:5)
使用元组解包:
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
答案 2 :(得分:1)
使用生成器表达式!
for val in (x[2] for x in dict):
print val
您不需要使用iteritems,因为您只查看值。