如何使用for循环将返回值分配给变量

Posted

技术标签:

【中文标题】如何使用for循环将返回值分配给变量【英文标题】:how to assign returned values into a variable using for loop 【发布时间】:2021-02-23 09:28:13 【问题描述】:

我有一个代码返回数据框中每列的最大值,直到现在它返回正确项目的列表。

我想要的是将每个项目分配给一个变量,该变量是在列表的 for 循环内创建的。

预期结果:

var1=item0 var2=item1 var3=item2

其中 var 是通过列表迭代创建的变量。

如果我运行下面的代码,它会崩溃并返回此错误:

    for i, l in lgdf:
TypeError: cannot unpack non-iterable int object

代码:

import pandas as pd

grouped_df=pd.crosstab(df['year_month'], df['event_type'])
lgdf =   list(grouped_df.max())

i = 0
for i, l in lgdf:
    var[i]=l
print(var)

【问题讨论】:

列表是项目列表的完美存储,为什么您需要单独的变量呢?不过,请参阅此问题以遍历具有索引的列表:***.com/questions/522563/… 因为我想在不同的标签中显示每个变量,但我不知道创建了多少变量,所以我想遍历列表 您的代码不完整。 df 是什么,var 声明在哪里?这段代码不会运行。 【参考方案1】:

虽然我同意@Wups 的评论,即将值存储在列表(或字典)中也可以,但您可以执行以下操作以在 for 循环中创建变量。

for i, l in lgdf:
    exec(f'var_i = l')

【讨论】:

以上是关于如何使用for循环将返回值分配给变量的主要内容,如果未能解决你的问题,请参考以下文章

For循环分配溢出到另一个变量[重复]

如何将从函数返回的布尔值分配给 PostgreSQL 9.4 中的变量?

如何将承诺的返回值分配给变量? [复制]

从 for 循环 matlab 内部生成的变量分配向量值

如何使用'for'循环将新变量传递给python脚本

如何将数组中的类随机分配给for循环中创建的元素