带索引的Python列表插入

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带索引的Python列表插入相关的知识,希望对你有一定的参考价值。

我有一个空的python list...而我有 for loop 插入有索引的元素,但是是随机的(意味着随机选择索引来插入项目)。我尝试了一个简单的例子,随机选择索引,但它在一些索引中可以工作,但其他的就不行了。下面是一个我想做的简单例子。

a=[]
#a=[]

a.insert(2, '2')
a.insert(5, '5')
a.insert(0, '0')
a.insert(3, '3')
a.insert(1, '1')
a.insert(4, '4')

输出的结果是 a = ['0','1','2','5','4','3']前三个是正确的(0,1,2) 但后三个是错误的('5','4','3')

如何控制在空列表中插入随机索引。

答案

如果你的值是唯一的,你能不能用它们作为字典中的键,用dict值作为索引?

a={}
nums = [1,4,5,7,8,3] 

for num in nums:
    a.update({str(num): num})

sorted(a, key=a.get)
另一答案

list.insert(i, e) 将插入元素 e 之前 指数 i所以,例如对于一个空的列表,它将把它作为第一个元素插入。

使用这些信息在脑海中映射出操作。

a = [] # []
a.insert(2, '2') # ['2']
a.insert(5, '5') # ['2', '5']
a.insert(0, '0') # ['0', '2', '5']
a.insert(3, '3') # ['0', '2', '5', '3']
a.insert(1, '1') # ['0', '1', '2', '5', '3']
a.insert(4, '4') # ['0', '1', '2', '5', '4', '3']

请记住 list不是固定大小的数组. 该 list 没有预定义的大小,可以通过追加或弹出元素来增长和缩小。


对于你 可能 你可以创建一个列表并使用索引来设置值。

如果你知道目标大小(例如是6)。

a = [None] * 6
a[2] = '2'
# ...

如果你只知道最大可能的索引,就必须这样做。

a = [None] * (max_index+1)
a[2] = '2'
# ...
a = [e for e in a if e is not None] # get rid of the Nones, but maintain ordering

如果你知道 知道最大可能的指数,或者它非常大,一个 list 是错误的数据结构。你可以使用 dict就像在其他答案中指出和显示的那样。.

另一答案

如果你有一个空数组,你试图在第三个位置添加一些元素,那么这个元素将被添加到第一个位置。因为python的list是一个链接的list。

你可以通过创建一个列表来解决这个问题 None 中的值。可以用这个来做。

# Creating a list with size = 10, so you could insert up to 10 elements.
a = [None] * 10
# Inserting the 99 in third position
a.insert(3,99)

另一种方法是使用numpy:

import numpy as np

# Create an empty array with 10 elements
a = np.empty(10,dtype=object)

# Insert 99 number in third position
np.insert(a, 3, 99)

print(a)
# array([None, None, None, 99, None, None, None, None, None, None, None],
#      dtype=object)

以上是关于带索引的Python列表插入的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin 表单 - 侧边菜单左侧栏、片段和列表视图

Python3基础 list enumerate 将列表的每个元素转换成 带索引值的元组

Python3基础 list enumerate 将列表的每个元素转换成 带索引值的元组

Python3基础 list(enumerate()) 将一个列表的每一个元素转换成 带索引值的元组

在Python中插入列表的第一个位置[关闭]

每日一记----python中的列表查询和插入