📜  Python|删除列表中的额外空格

📅  最后修改于: 2022-05-13 01:55:07.482000             🧑  作者: Mango

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']