如果我有一个元组的元组:
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'对象不可下标''
答案 0 :(得分:3)
当您访问嵌套项目时,您不会嵌套索引,而是将其附加。
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
的值,这没有任何意义。
答案 1 :(得分:2)
在[]
内放置正在访问的密钥。如果您希望从返回值中获取一个项目,请在 之后放置另一个[]
:
print(data[cyc[1][0]]['x'])
从字典data
中获取键cyc[1][0]
的值,该值是cyc内元素1内的元素0。从另一个字典的值开始,取键'x'
答案 2 :(得分:2)
以下是您希望通过的子表达式的顺序:
>>> 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