python - 获取元素通过 python 中每个索引的列表?

标签 python list permutation

有点奇怪的要求。

假设我有以下列表:

[1,2,3]

我想要一些东西,比如数字 9,通过每个索引,得到以下列表列表:

[[9,1,2,3],
 [1,9,2,3],
 [1,2,9,3],
 [1,2,3,9]]

知道如何轻松做到这一点吗?还有,这种东西有名字吗?

编辑:我意识到我可以做如下的事情:

lists=[]
for i in range(4):
  new_list = [1,2,3]
  new_list.insert(i,9)
  lists+=[new_list]

但我认为这不雅。想法?

最佳答案

你可以做类似的事情

l = [1,2,3]
new_l = [l[:i] + [9] + l[i:] for i in range(len(l) + 1)]

关于python - 获取元素通过 python 中每个索引的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17598266/

相关文章:

python - pyinstaller递归错误: maximum recursion depth exceeded

python - 按字典值对字典列表进行排序

python - 如何使用 itertools 最小化大长度列表的迭代时间?

Python更改文件名的一部分

python - 无法删除一对多关系中的父记录 - Flask-SqlAlchemy

C# 使用 LINQ 对字符数组列表进行排序

2 的幂的 python itertools 排列太慢

f# - F# 中的组合和排列

algorithm - Matlab 中的排列函数

python - 在 python 中创建日期为 YYYYMMDD 的文件夹