簡體   English   中英

刪除str列表中的空白

[英]remove white spaces in a list of str

a = ['bb', '', '', '', 'cc']

我要在列表a中刪除“”並返回以下列表:

a = ['bb', 'cc'] 

到目前為止,我有這段代碼:

new_a = []
for item in a:
    if item != '':
    new_a.extend(item)

它給我相同的輸出:

new_a = ['b', 'b', 'c', 'c']

但我想要:

new_a = ['bb', 'cc']

如何在不使用任何其他模塊的情況下修改現有代碼以獲取new_a = ['bb','cc']?

使用list-comp:

new_a = [el for el in a if el]

如果a每個元素的值為“ truthy” ...如果您想顯式地只包含非空字符串,則可以使用:

new_a = [el for el in a if el != '']

或者,更改現有代碼以使用append (將新的單個元素添加到列表的末尾)而不是extend (將可迭代的項添加到末尾-'bb'是兩個項-因此得到bb分別):

new_a = []
for item in a:
    if item != '':
        new_a.append(item)

解決您問題的另一種方法是, ''是一個長度為零的字符串對象,因此您可以對列表理解使用filter來僅獲取len> 0的字符串。

>>> a = ['bb', '', '', '', 'cc']
>>> filter(lambda x: len(x) > 0, a)
['bb', 'cc']
>>>

要么

>>> filter(lambda x: x.strip(), a)
['bb', 'cc']
>>> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM