列表行为非常怪异,带有循环

时间:2020-10-08 14:45:13

标签: python list backtracking

我有一个列表开头为

<div className="menu-item a-propos" onClick={() => props.scrollToRef(props.refs.CompetencesRef)}>
  <p className='button'>Compétences</p>
</div>

所以我看一下temp的值是一些正常值,如图所示:

value=[1,2,3]
out_list=[value]

while(i<2*len(nums)):
         
        temp_value=temp[locator]
        temp[locator]=temp[locator+1]
        temp[locator+1]=temp_value
        print(temp, end="   ")
        output_list+=[temp]
        print(output_list)
        i+=1

那应该意味着我的output_list很好吗?不,我将其作为最终输出。

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

2 个答案:

答案 0 :(得分:0)

您只想列表互相加入,对吗?

喜欢:

a=[1,2,3]
b=[3,2,1]
print (a+b)
[1,2,3,3,2,1]

如果是这样,请从[temp]中删除[]

output_list+=temp

更新: 试试这个吗?

from itertools import permutations 
comb = permutations([1, 2, 3], 3)
result=[]
for i in comb: 
    result+=[list(i)]
print(result)

答案 1 :(得分:0)

我正在发布一个回溯解决方案-因为您的代码中存在回溯。 这将为您提供列表的所有排列->嵌套列表作为输出。

def permute(nums):
    
    outputList = []
    set_ = set()
    
    def helper(l, count = 0):
        if count == len(nums):
            outputList.append(l)
        else:
            for number in nums:
                if number not in set_:
                    set_.add(number)
                    helper(l + [number], count + 1)
                    set_.remove(number)
    helper([])
    return outputList

permute([1,2,3])将产生

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