python - 如何根据 python 列表中的索引进行多个多项目替换?

标签 python arrays list replace

假设我有一个如下所示的 python 列表:

a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

以及带有替换指令的元组列表,格式为(起始索引、结束索引、要替换的元素)

b = [ (2,5,["x","y"])  , (8,8,["z"]) ]

如何在不弄乱索引的情况下进行替换?我已经尝试过,但找不到正确的方法。

预期输出:

c = [0, 1, "x", "y", 6, 7, "z", 9]

最佳答案

一种方法:

deleted = 0
for start, end, replacement in b:
    a[start - deleted:end + 1 - deleted] = replacement
    deleted += (end + 1 - start) - len(replacement)

关于python - 如何根据 python 列表中的索引进行多个多项目替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58489024/

相关文章:

python - 转换为 float 包含字符串的列表列表

python - 根据函数绘制 PatchCollection

python - Python-OpenCv FindContours

c++ - 如何处理我的 C++ __getitem__ 函数中的切片(由 SWIG 使用)

c++ - 使用绝对元素编号访问二维数组的元素

arrays - 环回更新对象的属性数组

python - 如何将 python 套接字流字符串值转换为 float ?

Python:判断跨n个数组的路径中的每一步是否都低于阈值

c# - 从循环列表中查找父类<class>

c# - 是否可以通过比较项目的属性来自动处理 List.Contains?