【发布时间】:2022-12-12 10:46:25
【问题描述】:
我想将所有总和等于 N 的整数对存储为元组。 到目前为止,这是我的代码:
m = []
l = []
degree = 9
for i in range(0, degree):
m += [degree - i];
l += [i]
pairs = (m[i]),(l[i])
pairs
此代码仅返回最后一对:
(1, 8)
我想要的是这样的:
(9, 0),(8, 1),(7, 2),(6, 3),(5, 4),(4, 5),(3, 6),(2, 7),(1, 8)
你能帮我找出并修复我的代码中的错误吗?
【问题讨论】:
-
您的最后一条语句
pairs仅返回最新的对的值。取而代之的是,您可以执行print([(m1,l1) for m1,l1 in zip(m,l)]) -
每次迭代都在重写
pairs。你需要初始化它前循环,以及append -
此处显示的代码毫无意义,并且存在多个问题。如果您想修复代码,那么这里没有合适的问题;我们需要关于一你有问题已经确定- 我们不做辅导。如果您只是询问如何获得结果,最好不要显示这样的代码 - 但问题仍然太宽泛:解决问题涉及遵循多个逻辑步骤。
-
@KarlKnechtel:请允许我不同意;这段代码虽然不是最优的,但几乎可以完成预期的工作;主要的(我们只说)问题是最后的陈述,它没有产生预期的结果。
-
哦,我现在明白了方法。那很……奇怪,但它本来可以工作的,是的。在那种情况下,这个问题肯定仍然是重复的;这里的基本技术由例如涵盖。 How can I use
returnto get back multiple values from a loop? Can I put them in a list?。这段代码不在一个函数中,所以设置有点不同,但概念问题和解决方案是一样的。
标签: python