我目前坚持尝试输出一些数据,希望有人能帮助我。
我做了一个小例子来说明我做不到的事情:
C_REQUESTS_COMPLETE
现在,当我尝试获取输出(彼此之间)时,我的输出仅为'number = 14':'n = 10''n = 8'等。
是否可以这样做?我意识到我正在覆盖我的数字变量,但是我不知道该怎么做。
答案 0 :(得分:1)
从函数返回多个值的常规方法是创建一个列表,将值附加到该列表中,然后在循环后返回。
a = [5, 3, 8, 9]
def function_name(list):
number = 0
results = []
for i in list:
number = i + 5
results.append('number = %d' % number)
return results
print(function_name(a))
这将为您提供输出['number = 10', 'number = 8', 'number = 13', 'number = 14']
。如果您想将所有这些都放在单独的行中,而没有引号或括号,则可以使用str.join
将它们合并到一个由换行符分隔的列表中。
print("\n".join(function_name(a)))
...或者,将return results
替换为:
return "\n".join(results)
取决于在函数的外部 或内部执行此操作是否有意义。两者都可以很好地工作,但是根据功能的目的,从概念上讲会更有意义。
也可以通过使用yield
而不是return来执行而不累积列表的操作。 yield
的行为类似于return
,除了它可以在一个函数中多次执行而不终止它。这会将函数转换为生成器。对我们来说幸运的是,str.join
很高兴接受生成器作为参数。
a = [5, 3, 8, 9]
def function_name(list):
number = 0
for i in list:
number = i + 5
yield 'number = %d' % number
print("\n".join(function_name(a)))
答案 1 :(得分:0)
您需要像这样在循环内进行打印:
def function_name(lst):
number = 0
for i in lst:
number = i + 5
print('number = %d' % number)
a = [5, 3, 8, 9]
function_name(a)
# number = 10
# number = 8
# number = 13
# number = 14
您要做的是在循环结束时从函数返回,因此只剩下最后一个值。
return
,则可以执行以下操作:
def function_name(lst):
number, lis = 0, []
for i in lst:
lis.append(i + 5)
return lis
a = [5, 3, 8, 9]
for number in function_name(a):
print('number = %d' % number)
好的,现在您将项目添加到循环中的列表中,并在末尾返回列表。在调用该函数的位置,我们遍历返回的列表并像以前一样显示。
答案 2 :(得分:0)
在当前实现中,您将返回last_element 9
并向其添加5
将返回14
在列表中循环
a = [5, 3, 8, 9]
def add_5(element):
return element +5
for i in a:
print(add_5(i))
或从函数返回整个列表
a = [5, 3, 8, 9]
def add_5_on_list(l):
res=[]
for i in l:
res.append(i+5)
return res
print(add_5_on_list(a))