使用Python根据另一个列表中的值合并列表中的项

2024-09-27 07:21:56 发布

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

我正在学习Python编程,我编写了一个Python脚本,从XML中提取所有标记和值,并将其转换为excel。我遇到的问题是,我需要一个特定格式的标签。我在两个单独的列表中有下面的标记和值。你知道吗

如果该值不在一行中,那么应该在到达具有值的标记之前将该标记追加到下一个标记。 所以如果输入是

Tags            Values
OAuth             
UserAuth 
Vendor          ABC
Time            21.04
AppName
Request         Temporary

所需的输出如下

Tags                           Values
OAuth             
OAuth.UserAuth 
OAuth.UserAuth.Vendor          ABC
OAuth.UserAuth.Time            21.04
AppName
AppName.Request                Temporary

因为这没有固定的可重复的更改,所以我完全不确定如何继续使用Python。我知道这可以通过列表理解来完成,但不知道如何做到。你知道吗


Tags: 标记脚本列表timerequest编程tagsxml
1条回答
网友
1楼 · 发布于 2024-09-27 07:21:56
tags = ['OAuth', 'UserAuth', 'Vendor', 'Time', 'AppName', 'Request']
values = ['', '', 'ABC', '21.04', '', 'Temporary']

def parse_tree(tags, values):
    value_found = False
    path = []
    for tag, value in zip(tags, values):
        if value:
            value_found = True
            yield ((".".join(path + [tag])), value)
        else:
            if value_found:
                # new branch from root
                path = []
                value_found = False
            path.append(tag)

list(parse_tree(tags, values))

给予

[
    ('OAuth.UserAuth.Vendor', 'ABC'),
    ('OAuth.UserAuth.Time', '21.04'),
    ('Request', 'Temporary')
]

相关问题 更多 >

    热门问题