简体   繁体   English

循环字典键值对或字典中的每个元素

[英]loop over dict key-value-pair or each element in dict

I have a dict that looks something like : PathNameRxn = {'ID':'2048 444','Name':'john hh', 'Father Name':'David ll'}我有一个看起来像这样的字典: PathNameRxn = {'ID':'2048 444','Name':'john hh', 'Father Name':'David ll'}

and this function:和这个功能:

def DefGrp(PathNameRxn): #.split("_")[0]
    groups=""
#   RxnID = Rxn.ID
    #print(PathName)
    for PathName in PathNameRxn:
        group= '''      <groups:group sboTerm="SBO:0000633" groups:id="group" groups:name="'''+PathName+'''" groups:kind="partonomy">
        <groups:listOfMembers>\n'''      
        for RxnID in PathNameRxn[PathName].split():
            idRef = '''          <groups:member groups:idRef="'''+str(RxnID.split("_")[0])+'''"/>\n'''
            groups += idRef            
        listOfMembers= '''        </groups:listOfMembers>
      </groups:group>''' 
        return group+groups+listOfMembers

this code这段代码

listOfGroups=DefGrp(PathNameRxn)
print(listOfGroups)

gives me:给我:

<groups:group sboTerm="SBO:0000633" groups:id="group" groups:name="ID" groups:kind="partonomy">
        <groups:listOfMembers>
          <groups:member groups:idRef="2048"/>
          <groups:member groups:idRef="444"/>
        </groups:listOfMembers>
      </groups:group>

but I want:但我想要:

<groups:group sboTerm="SBO:0000633" groups:id="group" groups:name="ID" groups:kind="partonomy">
        <groups:listOfMembers>
          <groups:member groups:idRef="2048"/>
          <groups:member groups:idRef="444"/>
        </groups:listOfMembers>
      </groups:group>
<groups:group sboTerm="SBO:0000633" groups:id="group" groups:name="Name" groups:kind="partonomy">
        <groups:listOfMembers>
          <groups:member groups:idRef="john"/>
          <groups:member groups:idRef="hh"/>
        </groups:listOfMembers>
      </groups:group>

can someone help me to achieve this?有人可以帮助我实现这一目标吗? I want to loop though every element of my dict我想循环我的字典的每个元素

看起来您的 return 语句缩进错误。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM