gpt4 book ai didi

python - 在列表中的不同索引点插入值

转载 作者:行者123 更新时间:2023-11-30 22:10:02 26 4
gpt4 key购买 nike

假设我有一个开始列表:

start_list = [0, 2, 3, 5, 6, 10, 11, 14, 20]

我现在选择从此列表中删除/删除以下位置的三个项目:

remove_list = [0, 3, 5]

使用 Numpy 可以通过以下方式完成:

>> final_list = np.delete(start_list, remove_list, axis=0)
[2, 3, 6, 11, 14, 20]

现在我希望返回到 start_list 的原始结构,但当然具有与删除的值不同的值,即如下所示:

new_list = [0, 2, 3, 0, 6, 0, 11, 14, 20]

因此,删除的索引现在已恢复为与开始时相同的排列,但删除的值现在替换为零。

如果我使用像 numpy.insert(final_list, remove_list, 0) 这样的东西,我会得到一个新列表,并在 remove_list 的索引位置插入零。但是,这是相对于 final_list 索引的,因此最终结果是:

new_list = [0, 2, 3, 6, 0, 11, 14, 0, 20]

这显然与 start_list 不同。

如果我迭代如下:

new_final_list = [np.insert(final_list, k, 0) for k in remove_list]

我最终得到了三个数组,其中每个数组的 remove_list 的索引中都插入了一个零。

所以基本上,我只是想从 final_list 中“重新创建”start_list,但在被删除的值的位置上添加零。

最佳答案

将列表理解与enumerate结合使用:

new_list = [x if i not in remove_list else 0 for i, x in enumerate(start_list)]
print(new_list)
#[0, 2, 3, 0, 6, 0, 11, 14, 20]

关于python - 在列表中的不同索引点插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51770915/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com