Рубрики

Python | Удалить дополнительные пробелы в списке

Иногда у нас есть список, содержащий строки и пробелы между ними. Мы стремимся к единообразию, чтобы потом, если мы решим их, между списками были просто пробелы. Следовательно, иногда необходимо удалить дополнительные ненужные пробелы между словами в списке.

Давайте обсудим некоторые способы, которыми это может быть сделано.

Способ № 1: Использование списка понимания + enumerate()
В этом методе мы создаем целый новый список, а не модифицируем исходный, проверяем элемент и его предыдущий элемент на наличие пробелов и добавляем только одно вхождение пробела и оставляя остальные.

# Python3 код для демонстрации
# удаление нескольких пробелов
# используя понимание списка + enumerate ()

  
# инициализация списка списков

test_list = ["GfG", "", "", "", "", "is", "", "", "best"]

  
# печать оригинального списка

print("The original list : " +  str(test_list))

  
# используя понимание списка + enumerate ()
# удаление нескольких пробелов

res = [val for idx, val in enumerate(test_list)

       if val or (not val and test_list[idx - 1])]

  
# результат печати

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 код для демонстрации
# удаление нескольких пробелов
# использование списка понимания + zip () + список нарезки

  
# инициализация списка списков

test_list = ["GfG", "", "", "", "", "is", "", "", "best"]

  
# печать оригинального списка

print("The original list : " +  str(test_list))

  
# использование списка понимания + zip () + список нарезки
# удаление нескольких пробелов

res = test_list[ : 1] + [j for i, j in

      zip(test_list, test_list[1 : ]) if i or j]

  
# результат печати

print("The list after removing additional spaces :  " + str(res))

Выход :

The original list : ['GfG', '', '', '', '', 'is', '', '', 'best']
The list after removing additional spaces :  ['GfG', '', 'is', '', 'best']

Рекомендуемые посты:

Python | Удалить дополнительные пробелы в списке

0.00 (0%) 0 votes