按索引在 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 列表中插入一个元素而不移动其他元素的主要内容,如果未能解决你的问题,请参考以下文章
RedisRedis 列表 List 操作 ( 查询操作 | 根据下标获取元素 | 获取列表长度 | 增操作 | 插入值 | 删操作 | 移除值 | 修改操作 | 设置列表指定索引的值 )