Python3中如何在defaultdict的指定索引位置插入元素
在Python的defaultdict列表指定位置插入元素
嘿,作为Python初学者,你这个需求其实超容易实现的!核心就是利用Python列表内置的insert()方法,结合你的defaultdict来操作就行——毕竟defaultdict里的列表值和普通Python列表的用法完全一致~
具体步骤
确定插入位置:你要把
d=6.5插到8.6和5.8之间,原列表[12.3, 11.8, 8.6, 5.8, 3.1]里,8.6的索引是2,所以插入位置就是索引3(因为insert()方法会把元素放到指定索引的位置,原索引及之后的元素会自动后移)。直接操作defaultdict里的列表:因为你的
default_dict已经存在label_1这个key,直接调用列表的insert()方法就可以完成插入。
完整代码示例
from collections import defaultdict # 初始化你的default_dict(如果还没初始化的话) default_dict = defaultdict(list, { 'label_1': [12.3, 11.8, 8.6, 5.8, 3.1], 'label_2': [2.4, 5.6, 7.8] }) d = 6.5 target_key = 'label_1' # 方式一:直接指定索引插入(适合你明确知道位置的情况) default_dict[target_key].insert(3, d) # 方式二:通过元素值找到位置再插入(更灵活,适合不确定索引的情况) # insert_index = default_dict[target_key].index(8.6) + 1 # default_dict[target_key].insert(insert_index, d) # 查看结果 print(default_dict['label_1']) # 输出:[12.3, 11.8, 8.6, 6.5, 5.8, 3.1]
小提示
- 如果你的列表里可能存在多个相同的
8.6,index()方法只会返回第一个匹配元素的索引,这时候你可能需要用循环来定位所有目标位置,不过在你的案例里完全没问题~ defaultdict的优势是当访问不存在的key时会自动创建默认值(比如空列表),但这里你的key已经存在,所以操作和普通字典里的列表完全一样。
内容的提问来源于stack exchange,提问作者Basionkler
相关产品推荐
相关产品推荐

