我需要使用字典的值而不是索引来访问字典中某个数组的某些值
例如:
message_dict = {
'123456,896':
[[3453, 57634], [9984, 97585]],
'157384,899':
[[3455, 57647], [9989, 97592]]
}
如果我要访问57634,可以执行以下操作:
s = '123456,896'
message_dict[s][0][1]
我想使用[0]的值来查找57634
我试图直接指定该值,但是语法无效。
s = '123456,896'
i = 3453
message_dict[s]i[1]
这报告语法错误,但我不知道如何指定值,而不是值在数组中的位置。
答案 0 :(得分:1)
这里是一个解决方案:
next((x[1] for x in message_dict[s] if x[0] == i), None)
给出None
(如果找不到值)。
答案 1 :(得分:0)
在子列表中,您要将第一项视为键,将第二项视为 value 。成对的列表不太适合于此,因为它需要线性搜索,请改用嵌套的dict
。
message_dict = {
'123456,896':
{3453: 57634, 9984: 97585},
'157384,899':
{3455: 57647, 9989: 97592}
}
print(message_dict['123456,896'][3453])
57634
如果您无法在源头更改message_dict
的格式,请按照以下方法进行转换。
message_dict = {
'123456,896':
[[3453, 57634], [9984, 97585]],
'157384,899':
[[3455, 57647], [9989, 97592]]
}
message_dict = {k: dict(lst) for k, lst in message_dict.items()}
print(message_dict)
{'123456,896': {3453: 57634, 9984: 97585},
'157384,899': {3455: 57647, 9989: 97592}}