我应该改变我的功能吗

2024-04-20 03:16:07 发布

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

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

所以我应该改变我的功能。你知道吗


Tags: andinnewfordatavaluedefsome
1条回答
网友
1楼 · 发布于 2024-04-20 03:16:07

当你从函数中return时,它就结束了。
你失去了功能,就这样。你知道吗

您可以使用a generator来实现您想要的,也可以返回tuplelist。你知道吗


使用发电机:

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? 你可能会感兴趣。你知道吗

相关问题 更多 >