如何去掉 Python 列表中的空白

How to get rid of blanks in Python list

我已经成功地去掉了列表中的 '\n',但我似乎无法去掉一个空白。

这是我所做的:

from pymystem3 import Mystem
m = Mystem()
user_flash = Flashcard.objects.filter(owner=self.request.user).values_list('question', flat=True)
user_flash_ = [item.replace('\n', ' ') for item in m.lemmatize(" ".join(user_flash))]

但是当我尝试对“”做同样的事情时,它不起作用。

所以,在我做任何事情之前,列表看起来像这样:['word1', '', 'word2', '\n'] 执行完上面的代码后,我得到了:['word1', '', 'word2'] 我怎样才能摆脱那个空白?以下...

user_flash_clean = [item.replace('', ' ') for item in user_flash_]

...没用...

我找到了绕过这个问题的方法,但如果可以去掉那个空白就好了。 (注意 - 我确实有充分的理由在词形还原之前执行 .join ,但如果那是我的问题所在,我很乐意解释我为什么这样做,这样我就可以实施不同的解决方案)

您可以根据 stripped 值的长度过滤 user_flash_ 中的单词:

user_flash_ = ['word1', '', 'word2', '\n']

user_flash_clean = [w for w in user_flash_ if len(w.strip())]
print(user_flash_clean)

输出:

['word1', 'word2']

请注意,在布尔上下文中,如果字符串为空 (''),则字符串为 false,因此在上面的代码中实际上不需要 len

user_flash_clean = [w for w in user_flash_ if w.strip()]
user_flash_clean = [item for item in user_flash_ if item.strip()]