实际上我有口述
x1={'b;0':'A1;B2;C3','b;1':'aa1;aa2;aa3','a;1': 'a1;a2;a3', 'a;0': 'A;B;C'}
实际上这里我的约定是'a;0','b;0'
将包含标记,'a;1','b;1'
将有相应的值,基于此我必须分组并打印。
我想要的输出是
这是我给出的示例dict,许多组可能会像c;0:.... d;0.....
我使用的代码 a=[] b=[] c=[] d=[] e=[] 对于x1.iteritems()中的k,v: 如果k.split(“;”).count('0')==1:#我正在使用这个bcoz a;0,b;0包含标记,所以我正在检查它们是否包含零拆分。 a=k.split(“;”);包含a=['a','0','b','0'] b=v.split(“;”);这包含'a;0'、'b;0'值 其他: c=v.split(“;”);它包含'a;1'、'b;1'值 对于范围(0,len(b)): d=b[i] e=c[i] 打印“<;%s>;%s<;%s>;”%(c、e、c) 实际上,当一个组是他们的时候,这个代码只能工作50% dict('a;1':'a1;a2;a3','a;0':'a;B;C')以及当多个组r其in dict('b;0':'A1;B2;C3','b;1':'aa1;aa2;aa3','a;1':'A1;a2;a3','a;0':'a;b;C') 在这两种情况下都会打印出来 在 aa1级 aa2级 aa3级 在 它只打印最近的值而不是所有的值
注意:字典没有顺序。所以iteritems()循环不一定以“b;0”开头。举个例子
去看看。在我的电脑上
^{pr2}$这就产生了一个问题,因为您的代码假设这些键按照它们在x1定义中出现的顺序出现[edit:或者更确切地说,它们是按顺序来的]。例如,您可以迭代排序键:
然后订单问题就解决了。但我认为你的代码有更多的问题。在
编辑:数据结构:
最好以某种方式存储数据,例如
如果无法更改格式,请使用以下方法转换数据:
从那里可以更容易地转换成所需的输出。在
如果你想在将来扩展输出的复杂性, 您可能需要考虑使用pyxml:
然后可以使用createElement和appendChild方法。在
相关问题 更多 >
编程相关推荐