【发布时间】:2018-04-20 23:06:40
【问题描述】:
我正在努力解决这个问题。我正在尝试编写一个函数,该函数将返回列表的所有排列,并与一些特殊值交错。
函数签名:
def interleaved_permutations(values, num_special_values)
一个例子:
>>> interleaved_permutations([1,2,3,4], 2)
[1,x,x,2,3,4]
[1,x,2,x,3,4]
[1,x,2,3,x,4]
[1,2,x,x,3,4]
...
一个额外的要求是特殊值不能在列表中的第一个或最后一个。
我知道一定有一些疯狂的 itertools foo 的方法,但我无法想出任何远程接近的方法。我得到的最接近的只是用itertools.permutations得到输入值的排列
我希望比我更懂 Python 的人能够提供帮助!
【问题讨论】:
-
所以项目 [1,2,3,4] 实际上没有排列?它们是否始终保持 [1,2,3,4] 顺序?
-
它们实际上是置换的,只要列举足够多的例子就可以看出太多了!虽然这实际上并不难,但您只需要将交错应用于每个排列。我确实遇到了@_@ 的问题
标签: python python-3.x permutation python-3.6