代码如下:
def QuanPaiLie(n):
if n < l:
for i in range(l):
if plList[i] == 0:
plList[i] = numsList[n]
QuanPaiLie(n + 1)
plList[i] = 0
else:
qplList.append(plList)
if __name__ == '__main__':
numsList = [1, 2, 3]
l = len(numsList)
qplList = []
plList = [0 for i in range(l)]
QuanPaiLie(0)
print(qplList)
运行后输出的结果是:
[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
而如果将qplList.append(plList)
改为qplList.append(str(plList))
,却可以输出:
['[1, 2, 3]', '[1, 3, 2]', '[2, 1, 3]', '[3, 1, 2]', '[2, 3, 1]', '[3, 2, 1]']
且不论算法的优劣,仅这个现象该如何解释呢。
请大佬赐教。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.