Удалить пробелы от конца и начать только во всех элементах списка - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть список my_list

my_list = [' Cat Alfred ', ' Dog Austin Power ', ' Very very very lazy frog ']

Мне нужно удалить все пробелы в начале и конце и разрешить вывод пробелов между символами:

['Cat Alfred', 'Dog Austin Power', 'Very very very lazy frog']

Я пытался использовать:

pattern = r"[^\w]"
names_only_words = [(re.sub(pattern, "", name)) for name in my_list]

Но это также удалит пробелы между символами

Ответы [ 4 ]

2 голосов
/ 15 апреля 2020

Это можно сделать просто, используя понимание списка, избегая необходимости использовать регулярные выражения.

names_only_words = [x.strip() for x in my_list]

Удалит пробелы с концов строк, но не из середины:

['Cat Alfred', 'Dog Austin Power', 'Very very very lazy frog']

Если вы действительно хотите сделать это с регулярным выражением, сработает следующее:

pattern = "^\s*(.*?)\s*$"
names_only_words = [(re.match(pattern, name).group(1)) for name in my_list]

Вместо первоначального подхода замены пробелов на концах ничем, он захватывает все между пробелами в концы.

1 голос
/ 15 апреля 2020

Вы можете использовать карту с функцией полосы:

names_only_words = list(map(lambda x: x.strip(),my_list))

https://www.tutorialspoint.com/python/string_strip.htm

['Cat Alfred', 'Dog Austin Power', 'Very very very lazy frog']
0 голосов
/ 15 апреля 2020

Просто используйте a для l oop и метод strip () из класса str:

for text in my_list:
    text = text.strip()  # removes spaces before and after text
0 голосов
/ 15 апреля 2020

Вы тоже можете сделать это так:

list(map(str.strip, my_list))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...