Python 删除str列表中的空白

Python 删除str列表中的空白,python,python-3.x,Python,Python 3.x,我要删除列表a中的“”,并返回以下列表: a = ['bb', '', '', '', 'cc'] 到目前为止,我有以下代码: a = ['bb', 'cc'] 它给了我相同的输出: new_a = [] for item in a: if item != '': new_a.extend(item) 但我想: new_a = ['b', 'b', 'c', 'c'] 如何在不使用任何其他模块的情况下修改现有代码以获得新的_a=['bb','cc'] new_a = [

我要删除列表a中的“”,并返回以下列表:

a = ['bb', '', '', '', 'cc']
到目前为止,我有以下代码:

a = ['bb', 'cc'] 
它给了我相同的输出:

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

new_a = ['b', 'b', 'c', 'c']
如何在不使用任何其他模块的情况下修改现有代码以获得新的_a=['bb','cc']

new_a = ['bb', 'cc']
a
中选取每个元素,如果它的计算结果为“truthy”。。。如果您希望显式地只包含非空字符串,则可以使用:

new_a = [el for el in a if el]
或者,将现有代码更改为使用
append
(在列表末尾添加一个新的元素)而不是
extend
(在列表末尾添加一个iterable项目-'bb'是两个项目-因此分别得到
b
b
):

使用列表组件:

new_a = ['bb', 'cc']
a
中选取每个元素,如果它的计算结果为“truthy”。。。如果您希望显式地只包含非空字符串,则可以使用:

new_a = [el for el in a if el]
或者,将现有代码更改为使用
append
(在列表末尾添加一个新的元素)而不是
extend
(在列表末尾添加一个iterable项目-'bb'是两个项目-因此分别得到
b
b
):


另一个解决问题的选项,
'
是一个长度为零的字符串对象,因此您可以使用列表理解中的过滤器仅获取len>0的字符串

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


另一个解决问题的选项,
'
是一个长度为零的字符串对象,因此您可以使用列表理解中的过滤器仅获取len>0的字符串

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


如果您有“.append”而不是“.extend”,那么您的代码就可以运行了。Extend使用另一个序列扩展列表,它将“bb”解释为两个“b”字符的序列。Append将“bb”视为一个值。如果您有“.Append”而不是“.extend”,那么您的代码就会工作。Extend使用另一个序列扩展列表,它将“bb”解释为两个“b”字符的序列。Append将“bb”视为一个值。这是一个有效的解决方案,但不如Jon Clements显示的列表理解优雅。这是一个有效的解决方案,但不如Jon Clements显示的列表理解优雅。