带索引的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列表插入的主要内容,如果未能解决你的问题,请参考以下文章
Python3基础 list enumerate 将列表的每个元素转换成 带索引值的元组
Python3基础 list enumerate 将列表的每个元素转换成 带索引值的元组