我已经为这个敲打了一段时间了,所以希望你能帮助我!所以这是我所拥有的:
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
的原因。