gpt4 book ai didi

python - 在 Python 中删除重复列表

转载 作者:太空宇宙 更新时间:2023-11-04 09:09:41 26 4
gpt4 key购买 nike

我正在编写一个程序,它输入一系列数字,然后用其中的 6 个数字组成不同的彩票号码组合。当我创建不同的组合时,我想删除重复项,以便每个组合只打印一次。这就是我想要发生的事情:

combo_list = [1 2 3 4 5 6 7]

输出应该是:

1 2 3 4 5 6
1 2 3 4 5 7
1 2 3 4 6 7
1 2 3 5 6 7
1 2 4 5 6 7
1 3 4 5 6 7
2 3 4 5 6 7

我使用的代码是:

   final = []
for sublist in combo_list:
if sublist not in final:
final.append(sublist)
for item in final:
item = (sorted(item, key=int))
print (' '.join(str(n) for n in item))

但是,当我使用代码时,我得到了很多重复的输出:

1 2 3 4 5 6
1 2 3 4 5 7
1 2 3 4 5 6
1 2 3 4 6 7
1 2 3 4 5 7
1 2 3 4 6 7
1 2 3 4 5 6
1 2 3 4 5 7
1 2 3 4 5 6
1 2 3 5 6 7
1 2 3 4 5 7
1 2 3 5 6 7
1 2 3 4 5 6
1 2 3 4 6 7
1 2 3 4 5 6
1 2 3 5 6 7
1 2 3 4 6 7
1 2 3 5 6 7
1 2 3 4 5 7
1 2 3 4 6 7
1 2 3 4 5 7
1 2 3 5 6 7
1 2 3 4 6 7
1 2 3 5 6 7
1 2 3 4 5 6
.
.
.

关于我必须为每个组合更改什么以仅打印一次有什么想法吗?

最佳答案

使用itertools.combinations()为此:

import itertools as it
ans = it.combinations([1, 2, 3, 4, 5, 6, 7], 6)

结果应该是这样的:

list(ans)

=> [(1, 2, 3, 4, 5, 6), (1, 2, 3, 4, 5, 7),
(1, 2, 3, 4, 6, 7), (1, 2, 3, 5, 6, 7),
(1, 2, 4, 5, 6, 7), (1, 3, 4, 5, 6, 7),
(2, 3, 4, 5, 6, 7)]

如果您之后需要打印数字,这很简单:

for r in ans:
print ' '.join(str(s) for s in r)

=> 1 2 3 4 5 6
1 2 3 4 5 7
1 2 3 4 6 7
1 2 3 5 6 7
1 2 4 5 6 7
1 3 4 5 6 7
2 3 4 5 6 7

关于python - 在 Python 中删除重复列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16765653/

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