python:使用list comprehension将str和str.title()添加到列表中

时间:2016-11-10 18:13:16

标签: python list-comprehension

我正在阅读带有文字的文件,例如:

stop_words = [x for x in open('stopwords.txt', 'r').read().split('\n')]

但我也需要同一个列表中单词的title()版本。我可以使用一个列表理解来做到这一点吗?

3 个答案:

答案 0 :(得分:5)

在一个(嵌套)列表理解中:

stop_words = [y for x in open('stopwords.txt', 'r').read().split('\n') for y in (x, x.title())]

编辑:你实际上不应该这样做,因为你丢失了打开文件的文件对象,无法关闭它。您应该使用Context Manager:

with open('stopwords.txt', 'r') as f:
    stop_words = [y for x in f.read().split('\n') for y in (x, x.title())]

答案 1 :(得分:0)

您可以使用:

stop_words = [[x, str(x).title()]  for x in open('stopwords.txt', 'r').read().split('\n')]

将产生嵌套列表。

[ [x, x titled], [y, y titled] ...]

答案 2 :(得分:0)

应该可以在一行代码中使用:

stop_words = [x for x in open('stopwords.txt', 'r').read().split('\n')] +  [x.title() for x in open('stopwords.txt', 'r').read().split('\n')]