Python 删除列表中的空白

Python 删除列表中的空白,python,list,Python,List,我试图删除列表中的空白 lis = ['H','','w'] print(lis) 我期望输出['H','W'] “列表”对象没有“替换”属性 或: 输出: ['H','w']使用.remove()删除项目 lis.remove('') 这将只删除该项的第一次出现,因此如果列表可以有多个,则必须在循环中调用.remove(),或以另一种方式处理它。您可以通过以下列表理解方法进行筛选 lis = [item for item in lis if item ] 或者通过内置函数lis.re

我试图删除列表中的空白

lis = ['H','','w']


print(lis)
我期望输出['H','W']

“列表”对象没有“替换”属性

或:

输出:

['H','w']

使用
.remove()
删除项目

lis.remove('')

这将只删除该项的第一次出现,因此如果列表可以有多个,则必须在循环中调用
.remove()
,或以另一种方式处理它。

您可以通过以下列表理解方法进行筛选

lis = [item for item in lis if item ]

或者通过内置函数
lis.remove(“”)

可以使用此代码删除任何包含空格或空白的元素

lis = ['H', '', '', 'W']
temp = []

for element in lis:
    if not (element.isspace() or element==''):
        temp.append(element)

print(temp)

使用排序的一种解决方案:

lis = ['H','w', '']

if '' in lis:
    lis.sort(key=lambda k: k=='')
    print(lis[:lis.index('')])
else:
    print(lis)
印刷品:

['H', 'w']

列表中没有任何空白。另外,
replace
是字符串上的函数,而不是列表列表没有
.replace()
方法。这不可能是您的实际代码。打印(列表(“”.join(lis).替换(“”))的可能重复通常,删除项目时进行迭代会导致问题。例如,当
lis
包含多个空格时,请尝试使用它。@Tomothy32如果列表包含多个空格,它仍然会工作,因为它会遍历指定列表的所有元素。您尝试过吗?在迭代过程中删除元素通常会导致跳过元素。对不起,我的意思是您尝试过使用包含两个或更多空格的列表。例如,尝试使用
lis=['H','','W']
。好的,谢谢您的编辑。:)顺便说一下,使用列表理解可能更容易。
lis = ['H','w', '']

if '' in lis:
    lis.sort(key=lambda k: k=='')
    print(lis[:lis.index('')])
else:
    print(lis)
['H', 'w']