繁体   English   中英

如何使用元组中的项访问字典中的项?

[英]How do I access items of a dictionary using items from a tuple?

如果我有一个元组的元组:

cyc = (('a-b', 'b-a'), ('a-c', 'c-a'), ('b-c', 'c-b'))

和词典字典:

data = {'a-b': {'x': 1, 'y': 2},
        'b-a': {'x': 3, 'y': 4},
        'a-c': {'x': 5, 'y': 6},
        'c-a': {'x': 7, 'y': 8},
        'b-c': {'x': 9, 'y': 10},
        'c-b': {'x': 11, 'y': 12}}

如何使用元组的元素访问字典中的元素?

例如,如果我只想打印一个元素:

print(data[cyc[1[0['x']]]])

我教过这会返回5。

相反,这给了我错误消息:

``TypeError:'int'对象不可下标''

当您访问嵌套项目时,您不会嵌套索引,而是将其附加。

cyc[1] == ('a-c', 'c-a')

那意味着

cyc[1][0] == 'a-c'

要将其用作字典中的索引,请编写

data[cyc[1][0]]

然后要从该嵌套字典中获取x索引,请追加['x']

data[cyc[1][0]]['x']

当您编写类似0['x']它意味着索引0值,这没有任何意义。

[]内部,放置了正在访问的密钥。 如果要从返回值中获取一个项目,则在其后放置另一个[]

print(data[cyc[1][0]]['x'])

从字典data获取键cyc[1][0]处的值,该值是cyc[1][0]内元素1内的元素0。 从另一个字典的值开始,取键'x'处的值

这是您希望经历的子表达式的顺序:

>>> cyc[1]
('a-c', 'c-a')
>>> cyc[1][0]
'a-c'
>>> data[cyc[1][0]]
{'x': 5, 'y': 5}
>>> data[cyc[1][0]]['x']
5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM