Удалить пробелы в "" в списке списка списка - PullRequest
1 голос
/ 25 марта 2020
results = [[['2020 is the year', '29 year old "Samuel G"', '25 year old "John P Krul"', '40 year old "Trey Nunez S"', '22 year old "Fiona S Paul"', '50 year old "Sean J Beal"']]]

Я пытался с последующим, но это, кажется, избавляется от среднего слова в "" в python3.

print([re.sub(r'"(\w+)(\s(\w+))*"', '"\\1\\3"', x.lower()) for x in results[0]])

Мой желаемый вывод

results = [[['2020 is the year', '29 year old "samuelg"', '25 year old "johnpkrul"', '40 year old "treynunezs"', '22 year old "fionaspaul"', '50 year old "seanjbeal"']]]

Удалите только между "" и строчными буквами в "", чтобы "Джон П Крул" перешел в "johnpkrul", сохраняя все то же самое.

Что необходимо изменить в коде?

1 Ответ

1 голос
/ 25 марта 2020

Вы можете попробовать это.

def f(x): #Takes re.match object as input
    a=x.group() #extractting the match
    return a.replace(' ','').lower() #them to lower and removing spaces

[re.sub(r'\"([^"]*)\"',f,i) for i in results]

['2020 is the year',
 '29 year old "samuelg"',
 '25 year old "johnpkrul"',
 '40 year old "treynunezs"',
 '22 year old "fionaspaul"',
 '50 year old "seanjbeal"']

Редактировать: Для списка списков списков

[[[re.sub(r'\"([^"]*)\"',f,i) for i in lst2] for lst2 in lst1] for lst1 in results]

Вывод:

[[['2020 is the year',
   '29 year old "samuelg"',
   '25 year old "johnpkrul"',
   '40 year old "treynunezs"',
   '22 year old "fionaspaul"',
   '50 year old "seanjbeal"']]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...