首页 > 解决方案 > 在python列表的每个索引处插入整数

问题描述

如何在以下列表的每个索引处插入整数“5”每个索引的新列表中的一个元素

我有一个清单

['2', '6', '8']

并想以下列方式插入“5”:

['5', '2', '6', '8']
['2', '5', '6', '8']
['2', '6', '5', '8']
['2', '6', '8', '5']

标签: pythonpython-3.x

解决方案


您可以使用列表的切片来和来自每个索引的列表推导:

>>> lst = ['2', '6', '8']
>>> [lst[:i] + ["5"] + lst[i:] for i in range(len(lst)+1)]
[['5', '2', '6', '8'],
 ['2', '5', '6', '8'],
 ['2', '6', '5', '8'],
 ['2', '6', '8', '5']]

或者使用*-unpacking,同样的结果:[[*lst[:i], "5", *lst[i:]] for ...]. 两个版本都创建了一堆临时列表切片。另一种方法是使用循环,复制列表,然后调用insert; 两种方法每个列表都应该有 ~O(2n) ,所以它并没有真正的区别。


推荐阅读