在Python列表上执行多个顺序操作的正确方法

时间:2018-12-17 19:02:50

标签: python

我必须对存储文本行的Python列表执行多个顺序操作,以清除该数据。当前(如下所示),每次执行每个操作时,我都会创建一个新变量。我的问题是:是否有一种更好的(更Python化的)方法来执行所有这些操作,而每次我想更改数据时都无需创建新变量?

这只是我目前正在做的一个例子:

corpus_1 = [strip_non_alphanum(line) for line in corpus]

corpus_2 = [line for line in corpus_1 if line.rstrip()]

corpus_3 = [strip_multiple_whitespaces(line) for line in corpus_2]

train_data_1 = [line.split(' ') for line in corpus_3]

train_data = [list(filter(None, line)) for line in train_data_1]

1 个答案:

答案 0 :(得分:1)

正如其他人在评论中已经提到的那样,您可以执行以下所有连续操作:

train_data = []
for line in corpus:
    line = strip_non_alphanum(line)
    if line.rstrip():
        elem = list(filter(None,strip_multiple_whitespaces(line).split()))
        train_data.append(elem)