我在教程上找到了一个很好的用于列表排列、组合和不组合列表位置的脚本并进行了修改。
这是脚本:
`your text`
list1 = [1]
list2 = [6, 7, 8]
list3 = [9, 10, 11]
list4 = [12]
print("The original lists are : " + str(list1) +
" " + str(list2) +
" " + str(list3) +
" " + str(list4))
res = [[i, j, k, l] for i in list1
for j in list2
for k in list3
for l in list4]
print("All possible permutations are:")
for perm in res:
print(*perm)
结果是:
1 6 9 12
1 6 10 12
1 6 11 12
1 7 9 12
1 7 10 12
1 7 11 12
1 8 9 12
1 8 10 12
1 8 11 12
我的问题是我还想要一些列表的排列结果,例如列表 3 和列表 4,将此结果添加到前一个结果中:
1 9 6 12
1 10 6 12
1 11 6 12
1 9 7 12
等等...
这可能吗?我找不到将其添加到脚本中的教程/解决方案。
我对Python编程还很陌生。 预先感谢。
我不确定你想要达到什么结果。但据我了解你的问题,你想从列表
res
、list1
、list2
和 list3
创建列表 list4
,其中应包含以下值:
1 6 9 12
1 6 10 12
1 6 11 12
1 7 9 12
1 7 10 12
1 7 11 12
1 8 9 12
1 8 10 12
1 8 11 12
1 9 6 12
1 10 6 12
1 11 6 12
1 9 7 12
1 10 7 12
1 11 7 12
1 9 8 12
1 10 8 12
1 11 8 12
如果这是您的目标,您可以通过扩展代码轻松实现它,如下所示:
list1 = [1]
list2 = [6, 7, 8]
list3 = [9, 10, 11]
list4 = [12]
print("The original lists are : " + str(list1) +
" " + str(list2) +
" " + str(list3) +
" " + str(list4))
res = [[i, j, k, l] for i in list1
for j in list2
for k in list3
for l in list4]
res_2 = [[i, k, j, l] for i in list1
for j in list2
for k in list3
for l in list4]
for perm in res_2:
res.append(perm)
print("All possible permutations are:")
for perm in res:
print(*perm)