【发布时间】:2021-03-02 16:48:25
【问题描述】:
我是 Python lambda 的初学者。并尝试将 Python for 循环转换为 lambda 表达式。首先我想解释一下 for 循环行。
fred = Fred2Hdfs() # construct the python imported objects
for i, state in enumerate(us_states):
df_unemployee_annual = fred.getFredDF('A', state, 'search_text') # generate dataframe from the object
if df_unemployee_annual is None:
continue
if i == 0:
fred.writeCsv2Hdfs('unemployee_annual.csv', df_unemployee_annual) # write dataframe
else:
fred.appendCsv2Hdfs('unemployee_annual.csv', df_unemployee_annual) # append dataframe
上面的代码成功运行,没有错误。下面的代码是我尝试转换的 Python lambda 代码。
fred = Fred2Hdfs()
freq='A'
str='search_text'
result_df_list = list(map(lambda state: fred.getFredDF(freq, state, str), us_states))
result_df_list = list(filter(lambda df: df is not None, result_df_list))
print(result_df_list) # codes work correctly until this line.
#func=map(lambda df:fred.writeCsv2Hdfs('unemployee_annual_.csv', df) , result_df_list)
我被 for 循环中的 if i==0: 行困住了。如何从 if i==0: 行中制作适当的 Python lambda 表达式。恐怕我不知道如何实现 Python lambda 的 if 过滤器。
【问题讨论】: