繁体   English   中英

如何摆脱 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 ,但如果这是我的问题所在,我很乐意解释我为什么这样做,以便我可以实施不同的解决方案)

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

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

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

Output:

['word1', 'word2']

请注意,在 boolean 上下文中,如果字符串为空 ( '' ),则字符串为 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()]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM