python – 在列表推导中重用已修改的键

foo = open('words.txt').readlines()
[k.rstrip() for k in foo if k.rstrip() != '']

我想重用修改后的密钥,就像那样

[k.rstrip() for k in foo if k != '']

这可能吗?

# input (words.txt)
# this will be just some lines with one or more words separated by space. 
# there will be no *special* case or anything 
foo bar  
baz  
bar baz waz

# expected output
>>> ['foo bar', 'baz', 'bar baz waz']

最佳答案 像这样做:

[x for x in (k.replace('\n', '').strip() for k in foo) if x]

看起来你想过滤掉空行,你可以这样做:

#Assuming `c` is the file object
>>> [line.rstrip() for line in c if not line.isspace()]
['foo bar', 'baz', 'bar baz waz']
#Demo
>>> foo = ['foo bar\n', 'baz\n', 'bar baz waz\n', '   \n']
>>> [line.strip() for line in foo if not line.isspace()]
['foo bar', 'baz', 'bar baz waz']
点赞