如何像“打印”一样从“返回”中获取多个值?

时间:2018-10-23 17:13:34

标签: python python-3.x printing return

当我运行下面的代码时,我只得到第一个结果。如果将return (a,d)替换为print (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

1 个答案:

答案 0 :(得分:1)

您在这里

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 , output2 = foo(nums)
print(output, output2)

编辑

创建列表并插入元组

nums = [(str(i)) for i in range(100,106)]

def foo(aa):
    list_of_numbs = list() # create a list
    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):
                list_of_numbs.append((a,d)) #insert your desire tuplet in the list
                #print(a,d)
    return list_of_numbs # return the list

x = foo(nums)
print(x) # print the list
# OR
for i,j in x:     
    print(i,j)