gpt4 book ai didi

python - 生成排列的所有一步变体

转载 作者:行者123 更新时间:2023-12-01 05:37:45 26 4
gpt4 key购买 nike

我只是想知道是否有一种更动态的方法来从给定的排列中获取一步变化,而不是指定每一步。我打算做的是,如果我有“(0, 0, 0, 0, 0,)”的排列,并且我指定了一个范围作为选择的可能性,所以在这种情况下,我指定了范围为 5,选择为“0,1,2,3,4”,我想生成如下排列: (1,0,0,0,0) , (2,0,0,0,0 )、(3,0,0,0,0) 等等,一次只能更改一个元素,我该怎么做。任何帮助都会很棒!

最佳答案

不完全确定您在寻找什么...也许是这样的,

def single_element_permutation(given, new):
for i in xrange(len(given)):
for ele in new:
yield given[:i] + (ele,) + given[i+1:]

for e in single_element_permutation((0, 0, 0, 0, 0), range(5)):
print e

输出:

(0, 0, 0, 0, 0)
(1, 0, 0, 0, 0)
(2, 0, 0, 0, 0)
(3, 0, 0, 0, 0)
(4, 0, 0, 0, 0)
(0, 0, 0, 0, 0)
(0, 1, 0, 0, 0)
(0, 2, 0, 0, 0)
(0, 3, 0, 0, 0)
(0, 4, 0, 0, 0)
(0, 0, 0, 0, 0)
(0, 0, 1, 0, 0)
(0, 0, 2, 0, 0)
(0, 0, 3, 0, 0)
(0, 0, 4, 0, 0)
(0, 0, 0, 0, 0)
(0, 0, 0, 1, 0)
(0, 0, 0, 2, 0)
(0, 0, 0, 3, 0)
(0, 0, 0, 4, 0)
(0, 0, 0, 0, 0)
(0, 0, 0, 0, 1)
(0, 0, 0, 0, 2)
(0, 0, 0, 0, 3)
(0, 0, 0, 0, 4)

关于python - 生成排列的所有一步变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18499331/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com