如果在乐透中从39个数字中选择七个数字,则任务是列出每个乐透行的列表。有比我的解决方案更优雅的方法吗?
rows = []
for a in range(1,40):
for b in range(a+1,40):
for c in range(b+1,40):
for d in range(c+1,40):
for e in range(d+1,40):
for f in range(e+1,40):
for g in range(f+1,40):
rows.append([a,b,c,d,e,f,g])发布于 2020-11-03 10:59:07
import itertools
rows = list(itertools.combinations(range(1, 40), 7))如果您想知道如何在不使用内置的情况下实现这一点,只需阅读文档中itertools.combinations的示例实现即可。
发布于 2020-11-03 12:23:56
有这么多缩进的代码从来都不是优雅的,而且很难维护。
有一个叫做不要重复自己的原则的编程原则,有时被称为干代码。如果您发现自己多次重复相同的代码,最好将其封装在一个函数中。如果有可能循环代码,这也可以减少重复。
https://codereview.stackexchange.com/questions/251535
复制相似问题