在Python中访问对象的第n个元素

2024-06-09 05:43:25 发布

您现在位置:Python中文网/ 问答频道 /正文

这是json

{u'skeleton_horde': 2, u'baby_dragon': 3, u'valkyrie': 5, u'chr_witch': 1, u'lightning': 1, u'order_volley': 6, u'building_inferno': 3, u'battle_ram': 2}

我想把名单弄成这样

^{pr2}$

这是Python

^{3}$

令人惊讶的是,没有关于如何获取对象(而不是数组)的n元素的文档。我试过了:

print(x['right']['troops'][1])

但它不起作用。在


Tags: jsonorderskeletonrambabylightningbuildingdragon
3条回答

首先要提取密钥:

x['right']['troops']

然后你想加入他们的空间散布

^{pr2}$

不过,由于Python字典是无序的,因此这将以不同的顺序排列。在

无法获取dict目录中的第n项(也许您已经将Python dict与JavaScript对象相混淆),原因很简单,它们是无序的。在

然而,有一种字典确实保持其键的顺序,恰当地命名为OrderedDict。在

解决方案

正如另一位评论者所指出的,这是一个解决问题的方法,但它仍然不能按照定义的顺序给你提供关键:

' '.join(obj['right']['troops'])

注意

在CPython(3.6)的最新版本中,字典键确实是按顺序排列的。我不确定我是否依赖于特定于实现的行为,或者在这种情况下是否需要对键进行排序,但最好知道一下。是@ScottColby给我指出来的道具!在

要使用dict.keys()获取dict键值的列表*:

print(list(x['right']['troops'].keys()))

*在python3中是actually a view。它将是python2中的一个列表。在

相关问题 更多 >