Python: 如何在可变索引位置通过迭代插入到嵌套列表中?

Python: How to insert into a nestled list via iteration at a variable index position?

我已经为这个问题苦苦思索了一段时间,所以希望你能帮助我!所以这就是我所拥有的:

grouped_list = [[["0","1","1","1"]["1","0","1","1"]][["1","1","0","1","1","1"]][["1","1","1","0","1"]]]
index_list = [[2,3][][4]]

并且我想在 index_list 中指示的相应索引位置处向 grouped_list 的子列表中插入一个“-”。结果如下:

[[["0","1","-","-","1","1"]["1","0","-","-","1","1"]][["1","1","0","1","1","1"]][["1","1","1","0","-","1"]]]

因为我是 python 的新手,所以这是我可笑的尝试:

for groups in grouped_list:
    for columns in groups:
        [[columns[i:i] = ["-"] for i in index] for index in index_list]

我得到一个语法错误,指向列表理解中的 =,但我认为它不会真正开始。我不想手动执行此操作,因为我正在处理相当大的数据集,所以某种迭代会很好!我是否需要使用 numpy 或 pandas 来做这样的事情?这可以通过巧妙地使用压缩来解决吗?非常感谢任何帮助!

我想你想要的是

for k, groups in enumerate(grouped_list):
    for columns in groups:
        for i in sorted(index_list[k], reverse=True):
            columns.insert(i, "-")

在这里,我遍历分组列表并保存索引 k 以确定要使用 index_list 中的哪些索引。我使用 list.insert 修改列表 in-place,这会在适当的位置插入元素。请注意,这仅在索引从最大到最小使用时才有效,否则位置会发生变化。这就是我在循环中使用 sorted 的原因。

遗憾的是我不能把它做成一个班轮:

def func(x, il):
    for i in il:
        x.insert(i,'-')
    return x
s = [[func(l, il) for l in ll] for (ll, il) in zip(grouped_list, index_list)]