Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 只返回第一个项目_Python_List_Return - Fatal编程技术网

Python 只返回第一个项目

Python 只返回第一个项目,python,list,return,Python,List,Return,在下面的函数中,我试图返回多个.txt文件的全文并将结果附加到列表中,但是,我的函数仅返回目录中第一个文件的文本。也就是说,如果我将return替换为print,它会在自己的行中将所有结果记录到控制台中,但我似乎无法将结果附加到列表中。返回函数有什么问题吗。 谢谢 您正在将return放入循环中。我想你想做什么。尽管如此,您可以在这里生成值 for file in matching_txt: f = open(file, "r") .... full_text.appen

在下面的函数中,我试图返回多个.txt文件的全文并将结果附加到列表中,但是,我的函数仅返回目录中第一个文件的文本。也就是说,如果我将return替换为print,它会在自己的行中将所有结果记录到控制台中,但我似乎无法将结果附加到列表中。返回函数有什么问题吗。 谢谢


您正在将
return
放入循环中。我想你想做什么。尽管如此,您可以在这里生成值

for file in matching_txt:
    f = open(file, "r")
    ....
    full_text.append(all_seqs)
return full_text 

您可以将函数转换为在内存使用方面更高效的生成器:

def fulltext():
    for file_name in matching_txt:
        with open(file_name) as f:
            ftext = f.read()
            all_seqs = ftext.split("title ")
            yield all_seqs
然后将生成器转换为一个列表(如果它们不是巨大的),否则,如果要使用生成器的项,您可以简单地循环结果:

full_text = list(fulltext())
您职能中的一些问题:

首先,不要使用python内置名称作为变量名(在本例中为文件名)。
其次,对于处理文件(和其他内部连接),最好使用
with
语句,该语句将自动关闭块末尾的文件。

修复函数中的缩进(返回在循环内)
full_text = list(fulltext())