Python Dict:在已生成的键中添加值而不丢失原始值

2024-04-25 05:50:24 发布

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

我试图在dict中添加一个xml文件。现在我要做的是在不丢失值的情况下将值更新到dict中。这样做的原因是我想对xml文件进行分组,以显示标记作者所做的所有更改。在

下面是xml文件的示例。在

<log> 
<logentry 
revision="33185"> 
<author>glv</author> 
<date>2012-08-06T21:01:52.494219Z</date> 
<paths> 

<path 
kind="file" 
action="M">/branches/Patch_4_2_0_Branch/text.xml</path>    

<path 
kind="dir" 
action="M">/branches/Patch_4_2_0_Branch</path> 

</paths> 
<msg>PATCH_BRANCH:N/A 
BUG_NUMBER:N/A 
FEATURE_AFFECTED:N/A 
OVERVIEW:N/A 
Adding the SVN log size requirement to the branch  
</msg> 
</logentry> 
 .... 
</log> 

这是我用Python编写的代码。在

^{pr2}$

现在我想要的最终结果是这样的

键1=glv,date1,路径1a路径1b,消息1,日期2,路径2,消息2。。。在

键2=jsm,日期1,路径1,消息1。在

我想把作者.更新({'Date':datef,'Path':Path_change,'msg':str(xmlMsgf)})列出作者编写的xml文件,以附加作者制作的下一组内容。不知道该怎么做。任何帮助都将不胜感激。这是我更新的代码,但我现在似乎得到了一个无效的语法错误:

  line 151
    authorentry.push{('author',authorA),('date',datef),('path',path_change),('path',xmlMsgf))}           
                    ^
 SyntaxError: invalid syntax

Tags: 文件path路径log消息datemsg作者
1条回答
网友
1楼 · 发布于 2024-04-25 05:50:24

您不能在dict中“保留旧值”,每个键只有一个与之关联的值。在

但是,您可以在dict中使用聚合值类型,例如,您可以使用列表作为值,并且每次您找到要添加的数据位时,都将其附加到关联的列表中。在

data = {}

for k, v in [('a', 1), ('a', 2), ('b', 3)]:
    try:
        data[k].append(v)
    except KeyError:
        data[k] = [v]  # a list of one element!

{cd1>中的构造函数甚至可以使这个模块更加方便:

^{pr2}$

相关问题 更多 >