python - 在python列表的每个索引处插入整数
问题描述
如何在以下列表的每个索引处插入整数“5”每个索引的新列表中的一个元素
我有一个清单
['2', '6', '8']
并想以下列方式插入“5”:
['5', '2', '6', '8']
['2', '5', '6', '8']
['2', '6', '5', '8']
['2', '6', '8', '5']
解决方案
您可以使用列表的切片来和来自每个索引的列表推导:
>>> 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) ,所以它并没有真正的区别。
推荐阅读
- webpack - 热模块重新加载在 macOS Catalina 中不起作用
- jquery - 使用数据选择 tr
- reactjs - 从调度程序获取未定义的结果
- java - 你能改变一个不可变的类吗?
- c++ - C++ std::thread 在没有活动异常的情况下终止调用已中止
- tensorflow - 自定义反向传播
- react-native - 关于反应原生的 podfile 问题
- android - 如何确保为每个设备创建一个房间,而不是每次启动应用程序时创建一个新实例
- python - 聚合函数的分组和过滤
- mysql - 如何使用python访问位于不同位置(非本地)的另一台机器上的MySQL数据库