将列表插入另一个列表,不带括号,并替换该索引中的当前项

 挚友刘洋共 发布于 2023-02-10 12:11

我正在尝试用Python实现Hierholzers算法,在有向图中找到欧拉循环.你可以在这里找到一个算法的例子,Hierholzers Algorithm.

就例子而言,我刚刚完成了第五阶段,换句话说,我的算法产生了一个级别列表,其中每个级别代表图形中的一个游览.
list_of_levels = [[0, 3, 2, 1, 0], [2, 6, 5, 4, 2], [6, 8, 7, 9, 6]]

要完成此过程,我需要将这些列表组合在一起,方法是将每个级别插入其上一级的适当位置.例如,上面列表的步骤是
步骤1 list_of_levels = [[0, 3, 2, 1, 0], [2, 6, 8, 7, 9, 6, 5, 4, 2]]
步骤2list_of_levels = [[0, 3, 2, 6, 8, 7, 9, 6, 5, 4, 2, 1, 0]]

到目前为止,我已经尝试了Python的insert(index,obj)方法,但结果包含插入列表的括号,并且它也没有用插入的项替换索引位置中的项.对于步骤1,insert方法的相应结果如下所示.
[2, [6, 8, 7, 9, 6], 6, 5, 4, 2]

所以问题是如何在不保留括号的情况下统一这些级别,而不会从其他级别结束重复的项目(顶点).

我正在考虑手动删除顶点,无论我插入下一个级别,并在我完成所有级别后,平坦最终列表,虽然由于某种原因我无法使链从迭代工作.

即使我设法实施这个解决方案,我相信还有更好的选择.
我很高兴看到一些想法.

1 个回答
  • 您可以通过以下方式将元素列表插入到列表中:

    B = [2, 6, 5, 4, 2]
    C = [6, 8, 7, 9, 6]
    B[1:2] = C
    print B
    

    版画

    [2, 6, 8, 7, 9, 6, 5, 4, 2]
    

    请注意,此操作已删除原始6并插入新元素代替6.

    该方法在文档中描述为:

    s [i:j] =
    从i到j的s切片被可迭代t的内容替换

    2023-02-10 12:13 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有