按索引在 la 列表中插入一个元素而不移动其他元素

Posted

技术标签:

【中文标题】按索引在 la 列表中插入一个元素而不移动其他元素【英文标题】:Insert an element in la list by index without moving others 【发布时间】:2017-04-30 13:08:23 【问题描述】:

我想按索引将元素添加到空列表中。例如,我想将 4 添加到列表 a 的第 5 位。

x = 4
a = []

在 C++ 等其他语言中,我可以创建一个包含 10 个索引且一开始都是空的数组,然后编写如下内容:

a[5] = 4

但我在 python 中找不到相同的。我刚刚找到了 insert 方法,它在每次插入时将下一个元素移动一个索引(对吗?)。这是我必须真正避免的。

也许我需要删除一个元素然后插入另一个元素,我不知道。我真的很感谢你的帮助,我真的被困在这里。

【问题讨论】:

您必须预先分配列表。试试a = [None] * 5,然后您应该可以在该列表中添加值。 【参考方案1】:

正如@Jakub 所说,您可以使用值预先分配列表。

a = [None] * 5

然后,只需使用 python 的列表索引符号来更改元素的值。

a[3] = 31

【讨论】:

感谢百万人 :)【参考方案2】:

如果你喜欢 Numpy 的做法,可以使用下面的方式

import numpy as np
a= np.empty(5)

然后,您可以正常分配值。

a[0]=4

然后您可以使用

将此数组转换为列表
a= a.tolist()

【讨论】:

以上是关于按索引在 la 列表中插入一个元素而不移动其他元素的主要内容,如果未能解决你的问题,请参考以下文章

Python--列表

迭代数组并在索引处插入元素

如何按值从 Redis 列表中删除元素?

列表查找及二分查找

javaint=22是啥

RedisRedis 列表 List 操作 ( 查询操作 | 根据下标获取元素 | 获取列表长度 | 增操作 | 插入值 | 删操作 | 移除值 | 修改操作 | 设置列表指定索引的值 )