[英]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'是兩個項-因此得到b
和b
分別):
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.