我试图查找列表中是否存在标记,然后将它们映射到字典并将它们添加到相应的标记中。 这就是我想出来的。
RequiredTags = ['PolicyNumber', 'PaymentAmt', 'PolicyAmt']
ListOfTags = ['Header', 'Version','PolicyNumber', 'PaymentAmt', 'Body', 'PolicyAmt']
ListOfValues = ['', '1.1', '123456', '100.00', '', '1']
values = dict.fromkeys(RequiredTags, [])
for key, value in values.items():
if key in ListOfTags:
v = ListOfValues[ListOfTags.index(key)]
print(key, v)
values[key].append(v)
问题是,每次附加一个值时,它都会附加到字典中的每个键上,而不仅仅是我想要追加的那个键。
预期输出就像
values = {'PolicyNumber': ['123456'], 'PaymentAmt': ['100.00'], 'PolicyAmt': ['1']}
我有一个xml文件列表,我想从中提取和导出值。
这会将值添加到一个文件的dict中,但我想将所有XML文件中的值附加到这个字典中。 希望这能更好地澄清这个问题。
答案 0 :(得分:3)
您的问题似乎没有多大意义,但我推断的是所需的输出应该与所需标签的列表相对应。
values = dict.fromkeys(RequiredTags)
for i, tag in enumerate(ListOfTags):
if tag in RequiredTags:
values[tag] = ListOfValues[i]
返回以下内容:
{'PaymentAmt': '100.00', 'PolicyAmt': '1', 'PolicyNumber': '123456'}
希望这是你想要的。
修改强>
所以,这就是我想你想要的:
values = {}
for i, tag in enumerate(ListOfTags):
if tag in RequiredTags:
values.setdefault(tag, []).append(ListOfValues[i])
在最后一行中,如果密钥存在于dict中,则它会附加到值列表,否则会使用空数组初始化该值。