动态构建一系列strcuts"在Python中

时间:2015-06-23 07:31:23

标签: python

我正在解析XML文档,寻找描述函数调用的项目。

当我找到一个带有函数调用的节点时,它可以有零个或多个参数,但在我处理它们之前我不知道有多少 - 所以,没有预先确定数据结构的大小。

此外,每个参数的"Version1:<span style="font-size:10px;"> (10.3.4)</span> vs Version2: <span style="font-size:10px;">(10.3.4)</span> 可能为空。

我正在尝试创建类似的东西:

description

处理完所有参数后,我可以使用numParams = 0 for each param in fucntionNode: params[numParams]['name'] = xxx # from the XML which we are parsing # or, do I mean ... params[numParams].name = xxx # also get param type and description numParams += 1 数据结构执行某些操作。

认为 params中的每个条目都应该是字典,但我不确定如何动态构建一个&#34;数组&#34;他们。

有人可以告诉我如何pythonically声明适当的数据结构,添加到它,然后,访问它?

而且,不幸的是,我需要在之后访问时进行索引。例如。 param

1 个答案:

答案 0 :(得分:1)

不清楚你到底需要什么(xxx来自param?)。它可能就像这个一样简单

params = []
for param in functionNode:
   params.append({'name': xxx})

params = [{'name': xxx} for param in functionNode]

或应该是

params = [{'name': xxx, 'type': yyy, 'desc': zzz} for param in functionNode]

[答案] OP在这里,我希望你不要介意我为了清楚而附加这个。我没有改变你的答案(上图)。

我使用了你的第一个选项:

params = []
for idx, param in enumerate(functionNode):
   # parse XML and assign local variables type, name & description
   params.append({'name': name, 'type': type, 'description': description})

我可以稍后访问

params[2]['name']