列表理解中修改键的重用

2024-04-25 18:19:46 发布

您现在位置: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']

Tags: orintxtforiffoobarbaz
1条回答
网友
1楼 · 发布于 2024-04-25 18:19:46

这样做:

[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']

相关问题 更多 >