所以我想说我有这个代码
x = { (1,"name1"):5673,
(2,"name2"):3265,
(3,"name3"):6319,
(4,"name4"):2539,
(5,"name5"):1734,
}
我希望得到5673,我知道我可以x[(1,"name1")]
,但我希望能够使用数字或字符串,例如x[0][1]
并获取5673
(零是使用元组中的第一个索引,1代表第一个字典,或者它们中的任何一个有数字1)用数字选择或x[1]["name2"]
我们得到3265
用字符串选择(也是1是使用元组中的第二个索引而“name2”是第二个字典,或者它们中的任何一个都有字符串“name2”),其他示例是我们可以使用x[0][3]
并获取{{1或者使用6319
并获取x[1]["name5]
答案 0 :(得分:0)
我认为你把字典与列表混淆了。您是否尝试使用索引访问字典的键?这不是它的工作原理。您可以创建具有相同值的多个键,以便能够访问相同的值。
答案 1 :(得分:0)
通过设置数据结构的方式,遗憾的是无法在不改变结构的情况下以您描述的方式访问值(例如x [0] [1])。以下结构允许您使用要访问各种值的方法。
x = [ {1: 5673, "name": "name1"},
{2: 3265, "name": "name2"},
{3: 6319, "name": "name3"},
{4: 2539, "name": "name4"},
{5: 1734, "name": "name5"}
]
此外,如果您想使用x [0] [" name0"] -
进行访问 x = [ {"name0": 5673},
{"name1": 3265},
{"name2": 6319},
{"name3": 2539},
{"name4": 1734 }
]
字典也没有订购,也没有索引。值只能通过字典中存在的键访问(否则您将获得KeyError)。如果要访问x [0],则要么必须是名为0的键,要么x必须是如上所示的列表。希望这会有所帮助。
答案 2 :(得分:0)
您可以在for中解析键的各个元素,并且只有在与您组成的逻辑匹配时才返回该值。或者你可以将你的数据转换成一个合适的(字典列表)字典,其中包含你可以随意查询的数据结构。