如何将for循环中函数的多个结果存储为Python中的唯一变量



我有一个函数,它根据不同的输入返回不同的值。我希望它遍历一个列表,为每个输入吐出结果。但我不知道如何将每个结果存储为一个唯一的变量。。。

下面是列表的一个示例

list = ["input1", "input2", "input3"]

函数根据输入返回不同的整数。我正在用一个类似的for循环浏览列表

for input in list:
my_function(input)

循环中的函数为列表中的每个项运行,并为每个项返回一个唯一的整数。但是,我如何将每个返回值存储为它们自己的变量呢?

我试过了。但它每次都会覆盖变量,只给我留下循环中的最后一个

for input in list:
var = my_function(input)

是否有某种方法可以在每次循环运行中动态更改该变量?

vars = []
for input in list:
vars.append(my_function(input))

vars = [my_function(input) for input in list]

或者字典方法

vars = {}
for input in list:
vars[input] = my_function(input)

或内联

vars = {input: my_function(input) for input in list} 

l1是一个列表,它存储每次调用函数时的所有输入,直到循环停止

l1 = []
for input in list:
l1.append(my_function(input))

我想知道你为什么要实现你想要实现的目标,这听起来像是一个可怕的想法,你想要的似乎是另一个列表或字典。

话虽如此,我不推荐它,但这段代码可能会起到作用。

ctr = 0

def my_function(inp):
return f"RETURN VAL OF MY FUNCTION FOR INPUT {inp}"
lst = ["input1", "input2", "input3"]
for i in lst:
exec(f'var{ctr+1} = "{my_function(i)}"')
ctr+=1
print(var1)
print(var2)

最新更新