两个以上列表合并到一个列表,python可变参数函数

发布于 2022-09-12 02:53:51 字数 210 浏览 10 评论 0

多个列表,个数不定,比方说
la=[['张三',60],['李四',66],['王五',62]]
lb=[['张三',70],['李四',76]]
lc=[['张三',90],,['王五',92]]
合并后
lst==[['张三',60,70,90],['李四',66,76,None],['王五',62,None,92]]
python可变参数函数如何写?
谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

那支青花 2022-09-19 02:53:51
def foo(*ls):
    mapping = {}
    for i, l in enumerate(ls):
        record = []
        for name, value in l:
            if name not in mapping:
                mapping[name] = list()
            if not mapping[name]:
                mapping[name].extend(None for _ in range(i))

            mapping[name].append(value)
            record.append(name)

        for name in mapping.keys():
            if name not in record:
                mapping[name].append(None)

    return [[key] + value for key, value in mapping.items()]


if __name__ == '__main__':
    print(foo([['张三', 60], ['李四', 66], ['王五', 62]],
              [['张三', 70], ['李四', 76]],
              [['张三', 90], ['王五', 92]],
              [['李四', 10], ['赵六', 20]],
              [['王五', 89], ['李四', 70]]))
生死何惧 2022-09-19 02:53:51

非常谢谢!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文