Python|删除列表中的额外空格
有时,我们有一个列表,其中包含字符串和它们之间的空格。我们希望有统一性,以便以后如果我们决定它们,我们在列表之间只有一个空格。因此,有时需要删除列表中单词之间的额外不必要空格。
让我们讨论一些可以做到这一点的方法。
方法 #1:使用列表理解 + enumerate()
在这种方法中,我们创建了一个全新的列表,而不是修改原始列表,并检查元素及其前面的元素是否有空格,并且只添加一个出现的空格并留下其余的。
# Python3 code to demonstrate
# removing multiple spaces
# using list comprehension + enumerate()
# initializing list of lists
test_list = ["GfG", "", "", "", "", "is", "", "", "best"]
# printing original list
print("The original list : " + str(test_list))
# using list comprehension + enumerate()
# removing multiple spaces
res = [val for idx, val in enumerate(test_list)
if val or (not val and test_list[idx - 1])]
# printing result
print("The list after removing additional spaces : " + str(res))
输出 :
The original list : ['GfG', '', '', '', '', 'is', '', '', 'best']
The list after removing additional spaces : ['GfG', '', 'is', '', 'best']
方法 #2:使用列表理解 + zip()
+ 列表切片
在这种方法中,我们一次取一对并检查它是否两个元素都是空的,如果是,我们将其丢弃。如果任何一个为空或两者都不为空,我们将其保留在列表中。
# Python3 code to demonstrate
# removing multiple spaces
# using list comprehension + zip() + list slicing
# initializing list of lists
test_list = ["GfG", "", "", "", "", "is", "", "", "best"]
# printing original list
print("The original list : " + str(test_list))
# using list comprehension + zip() + list slicing
# removing multiple spaces
res = test_list[ : 1] + [j for i, j in
zip(test_list, test_list[1 : ]) if i or j]
# printing result
print("The list after removing additional spaces : " + str(res))
输出 :
The original list : ['GfG', '', '', '', '', 'is', '', '', 'best']
The list after removing additional spaces : ['GfG', '', 'is', '', 'best']