如何在 Python3 中的 defaultdict 中的特定索引处插入值

How to insert values at specific index in defaultdict in Python3

我是 Python 的初学者,我想做的是在与我在 Python 3 中的键关联的值列表中的特定索引中添加一个元素,使用默认字典。

我的default_dict结构如下:

default_dict = ['label_1':[list of doubles], 'label_2':[list of doubles], etc..]

假设我有一个双 d = 6.5 并且我想将其作为键值插入列表:label_1 在特定索引中。

如果我的列表是:[12.3, 11.8, 8.6, 5.8, 3.1]

我想在 8.65.8

之间插入我的 d = 6.5

我知道像 default_dict[label_1].append(d) 这样的调用会产生这样的列表:

[12.3, 11.8, 8.6, 5.8, 3.1, 6.5]

有没有我可以使用的功能,例如: default_dict[label_1].add(d, index_to_insert) ?

我以为我可以获取整个列表,自己修改它并将新列表与旧列表切换,但我认为这是一个繁重的调用(我需要调用很多时间)而且我需要更有效的方法!

提前致谢!

使用list.insert(index,object)添加到列表的特定索引。

请注意,如您所指,您必须对 default_dict 中的内部列表执行此操作。

例如:

>>li1 = [1,2,3,4,5]
>>li1.insert(5,8)
>>li1
[1, 2, 3, 4, 5, 8]
>>li1.insert(1,99)
>>li1
[1, 99, 2, 3, 4, 5, 8]

更有效的方法也是slicing,如果您在特定索引处插入单个或多个元素而不替换现有值。

>>li1 = [1,2,3,9,6,4,9,0]
>>li1[3:3] = [7]
>>li1
[1, 2, 3, 7, 9, 6, 4, 9, 0]

请注意 time complexity 因为 insertO(n)slicingO(k)