繁体   English   中英

遍历字典并为变量赋值

[英]Iterating through a dictionary and assigning values to a variable

我有一个字典“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)

但是当我执行 print(df1) 时,出现“名称‘df1’未定义”错误。

是的,您可以使用globals() ,前提是您在全球范围内拥有所有df

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

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

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

function enumerate包装了一个可迭代对象并返回元组(index, value) 当您需要引用列表中每个元素的值和位置时,它非常方便。 另请注意使用元组拆包为enumerate返回的两个项目命名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM