3 回答
TA贡献1799条经验 获得超8个赞
我正在做一个程序,该程序输入一系列数字,并使用其中的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
.
.
.
关于每个组合仅需打印一次的更改,我有什么想法吗?
TA贡献1811条经验 获得超5个赞
comb_list= range(1, 8)
rip_idx = 6
for idx in range(len(comb_list)):
final = comb_list[0:rip_idx -idx ] + comb_list[rip_idx- idx + 1: ]
print final
一种无需任何库即可解决的简单方法
添加回答
举报