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

rho*_*ron 2 python list permutation

有点奇怪的要求.

假设我有以下列表:

[1,2,3]
Run Code Online (Sandbox Code Playgroud)

我希望通过每个索引获取数字9,以获得以下列表列表:

[[9,1,2,3],
 [1,9,2,3],
 [1,2,9,3],
 [1,2,3,9]]
Run Code Online (Sandbox Code Playgroud)

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

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

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

但我认为这不优雅.思考?

wfl*_*nny 6

你可以做点什么

l = [1,2,3]
new_l = [l[:i] + [9] + l[i:] for i in range(len(l) + 1)]
Run Code Online (Sandbox Code Playgroud)