如何将单词传递给数组而不是单个字符 - Python

问题描述 投票:0回答:4

所以我正在读取python中的文本文件,并希望得到文件中所有单词的列表。我是通过这种方法这样做的。

def parse_in(file_location, input_name):
    all_words = []
    with open(file_location + input_name,'r') as f:
        for line in f:
            for word in line.split():
                all_words += word
    f.close
    return all_words

而不是all_words返回实际的单词,它返回单个字符的列表,如['A', 'B', 'C']等。

但是在调试时我可以看到变量字是一个实际的单词而不仅仅是字符。我在哪里错了?

python
4个回答
3
投票

使用

all_words.append(word)

代替

all_words += word

如果使用+=,则将word视为序列,因此各个字符都会附加到列表中。

或者,您可以使用+=,并简化您的循环:

for line in f:
    all_words += line.split()

0
投票

尝试这个:

def parse_in(file_location, input_name):
    all_words = []
    with open(file_location + input_name,'r') as f:
        for line in f:
            all_words += line.split()
    return all_words

0
投票

all_words += wordall_words中的项目扩展名单word。由于word是一个字符串,所以附加了字符,就像你用for迭代它一样。

使用all_words.append(word)将单词附加到单词列表中。


0
投票

如果您使用上下文管理器,则无需关闭文件,为简单起见,您只需读取整个文件并使用split方法即可

def parse_in(file_location, input_name):
    all_words = []
    with open(file_location + input_name,'r') as f:
        all_words = f.read().split()

    return all_words
© www.soinside.com 2019 - 2024. All rights reserved.