【问题标题】:How to create a new list of all the words separating by each word and each line?如何创建由每个单词和每一行分隔的所有单词的新列表?
【发布时间】:2021-04-12 15:16:56
【问题描述】:

我有一个文本文件:

示例.txt

Hi I am student
I am from 

我试过的是

import string
import re

def read_to_list1(filepath):
    text_as_string = open(filepath, 'r').read()
    x = re.sub('['+string.punctuation+']', '', text_as_string).split("\n")
    
    for i in x:
        x_as_string = re.sub('['+string.punctuation+']', '', i).split()
        print(x_as_string)

read_to_list1('sample.txt')

这个结果

['Hi,'I','am','student']
['I','am','from']

我想要的结果是:

[['Hi,'I','am','student'],['I','am','from']]

【问题讨论】:

  • 所有string.punctuation 处理是怎么回事?你能举一个例子来说明你正在尝试处理这些情况吗?

标签: python python-3.x string list


【解决方案1】:

打开文件后,您可以使用列表推导来遍历行,并为每一行 str.split 在空白处获取每个子列表的标记。

def read_to_list1(filepath):
    with open(filepath, 'r') as f_in:
        return [line.split() for line in f_in]

【讨论】:

    【解决方案2】:

    对于特定示例 sample.txt,这也应该有效:

    import string
    import re
    
    def read_to_list1(filepath):
        text_as_string = open(filepath, 'r').read()
        x = re.sub('['+string.punctuation+']', '', text_as_string).split("\n")
        final_array=[]
        for i in x:
            x_as_string = re.sub('['+string.punctuation+']', '', i).split()
            final_array.append(x_as_string)
        return final_array    
    print(read_to_list1('sample.txt'))
    

    【讨论】:

      猜你喜欢
      • 2017-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-05
      • 1970-01-01
      相关资源
      最近更新 更多