当我运行下面的代码时,我只得到第一个结果。如果将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
答案 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)