我需要做一个看起来像 1-N 序列的排列,其中在 #k 中填充了 0。
这个方法可行,但是使用内置函数有什么更简单的方法吗?
def permshift(n,k):
return [0 if x == k else x+(x<k) for x in range(n)]
>>> permshift(7,0)
[0, 1, 2, 3, 4, 5, 6]
>>> permshift(7,1)
[1, 0, 2, 3, 4, 5, 6]
>>> permshift(7,2)
[1, 2, 0, 3, 4, 5, 6]
>>> permshift(7,3)
[1, 2, 3, 0, 4, 5, 6]
>>> permshift(7,4)
[1, 2, 3, 4, 0, 5, 6]
>>> permshift(7,5)
[1, 2, 3, 4, 5, 0, 6]
>>> permshift(7,6)
[1, 2, 3, 4, 5, 6, 0]
最佳答案
只需创建一个新列表,然后在需要的地方插入 0
。
def permshift(n, k):
lst = range(1, n)
lst.insert(k, 0)
return lst
关于python - 在 python 中进行移位排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11252597/