我正在阅读带有文字的文件,例如:
stop_words = [x for x in open('stopwords.txt', 'r').read().split('\n')]
但我也需要同一个列表中单词的title()版本。我可以使用一个列表理解来做到这一点吗?
答案 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')]