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



我已经为这个敲打了一段时间了,所以希望你能帮助我!所以这是我所拥有的:

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]]

我想在grouped_list子列表中插入一个"-",位于index_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 或熊猫来做这样的事情吗?这可以通过巧妙地使用拉链来解决吗?任何帮助将不胜感激!

很遗憾我无法将其作为一行:

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)]

我认为你想要的是

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 就地修改列表,这会就地插入元素。请注意,这仅在索引从最大到最小使用时才有效,因为否则位置会发生变化。这就是我在循环中使用sorted的原因。

最新更新