我想用 python 解决一个思维挑战谜题。 他们给出了 4 个数字(25、28、38、35),他们希望我们将这些数字放在 ...+...-...=... 中,一种可能的解决方案是 25+38-35=28。我试过,从数字中列出一个列表,用一些循环和一个 if 来迭代它们: lst=[25, 28, 38, 35]
for z in lst:
for x in lst:
for c in lst:
for v in lst:
if z+x-c==v:
print z,x,c,v
但是,当运行 for 循环时,它们会重复数字 (25+25-25=25),这不起作用。我该如何解决?
最佳答案
正如 Luis 的评论所暗示的,一个好的方法是
import itertools
for z, x, c, v in itertools.permutations(lst):
if z+x-c==v:
print z,x,c,v
“扁平比嵌套更好”,因为在交互式 Python 提示符下 import this
会提醒您:-)
关于Python:遍历列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28095258/