遍历字典并为变量赋值

2024-10-02 04:25:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字典“d”,它有10个键,其中pyspark数据帧作为值

 >> d.keys()
  dict_keys (['Py1', 'Py2', 'Py3', 'Py4', 'Py7', 'Py8', 'Py15', 'Py20', 'Py21', 'Py22']

我目前正在获取每个键及其值,然后将其分配给一个变量,如下所示:

   df1 = d['Py1'] 
   df2 = d['Py2']
   df3 = d['Py3']
  .
  .
  .
  df10 = d['Py22']

然后我使用pyspark进行各种操作。在没有冗余的情况下,实现这一目标的最佳方式是什么?这是我所尝试的

 newname = "df"
 counter = 1
 for key in df_list.keys():
 key = newname + str(counter)
 counter+=1
 print (key)

但当我打印(df1)时,我得到一个“名称‘df1’未定义”错误


Tags: 数据keydf字典counterpy3keysdict
2条回答

假设您的df位于名为dfs的列表中。我将结合使用理解和enumerate函数

out = {newname + str(i): df for i, df in enumerate(dfs, 1)}

函数enumerate包装一个iterable并返回元组(index, value)。当您需要引用列表中每个元素的值和位置时,这非常方便。还要注意使用tuple unpacking为enumerate返回的两个项指定名称

是的,您可以使用^{},前提是您全局拥有所有df

newname = "df"
d = {k: globals()[newname + str(counter)] for counter, k in enumerate(d, start = 1)}

相关问题 更多 >

    热门问题