Skip to main content
 首页 » 编程设计

python之我应该改变我的功能

2025年05月04日50me-sa

list_1  =[1, 2, 3, 4 ] 
 
def fun(list_1): 
    for each value in list1: 
        # perform some operation and create a new data frame(pandas) for each value in the list 
        # so in total I should get 4 data frames. 
        print each_value 
 
        return new_data_frame 

当我运行 fun(list_1) 时,我应该得到 4 个数据帧:

1 
data_frame_1 
 
2 
data_frame_2 
 
3 
data_frame_3 
 
4 
data_frame_4 

但我得到的输出只有第一个值。

1 
data_frame_1 

那么我应该在我的函数中更改什么。

请您参考如下方法:

当您从函数返回时,它就结束了。
你超出了功能,仅此而已。

你可以使用 a generator实现你想要的,或者你可以返回一个 tuple 或一个 list


使用生成器:

def fun(list_1): 
    for each_value in list_1: 
        # perform some operation and create a new data frame(pandas) named "new_data_frame" for each value in the list 
        print each_value 
        yield new_data_frame 
 
for data_frame in fun(list_1): 
    # Do something with the data frame "data_frame" 

这将每次打印值,并返回您的数据框。 但它返回一个生成器,因此您必须多次调用该函数。你不能真正做的是让你的数据帧进入循环而不想将它们存储在列表中或同化或只调用一次函数。


使用列表的更简单方法可能是:

def fun(list_1): 
    data_frames = [] 
    for each_value in list1: 
        # perform some operation and create a new data frame(pandas) named "new_data_frame" for each value in the list 
        print each_value 
        data_frames.append(new_data_frame) 
 
return data_frames 

作为引用,我建议您查看 What does the "yield" keyword do in Python? 您可能会感兴趣。