【发布时间】:2019-03-28 00:18:06
【问题描述】:
当我运行下面的代码时,我只得到第一个结果。如果我用print (a,d) 替换return (a,d),我会得到完整的结果集。 (我知道运行print (a,d) 不会将输出保存在任何地方。)
我需要更改哪些内容才能获得完整的输出,而不仅仅是第一个结果?
nums = [(str(i)) for i in range(100,106)]
def foo(aa):
for a in nums:
for b in a :
c= sum(int(b)**2 for b in a)
d=''.join(sorted(a,reverse=True))
if (c>5):
return(a,d)
output = foo(nums)
print(output)
更新——我期待以下输出:
103 310
103 310
103 310
104 410
104 410
104 410
105 510
105 510
105 510
return(a,d) 只给了我:
103 310
【问题讨论】:
-
return (a, d)返回一个包含两个值的元组。它肯定会捕获这两个值。但是print(output)不会产生与print(a, d)相同的输出 -
repl.it/@codeguru/VillainousUniqueServers 据我所知,这会打印“完整的结果集”。如果你运行上面链接中的代码,你会得到
('103', '310')的输出,这在我看来是两个结果,而不仅仅是第一个。 -
当提问者返回多个值时,问题文本表明他们想要返回更多;如果
return被print替换,他们希望返回将打印的每个值。这需要“使用列表/生成器”欺骗,而不是元组欺骗。
标签: python python-3.x printing return