в моем re_list у меня есть 4 условия, теперь, когда я перебираю строку, она выдает мне вывод, если необходимая информация существует, а если нет, то дает мне пустой список. если re.findall не находит совпадений: я хочу только 1 пустой список. Как мне избежать получения дополнительных 3 пустых списков? как должно быть условие if здесь?
проверить вывод и ожидаемый спад ниже
это весь код
fil = data['transcription']
re_list = [
'\d*\-year-old',
'\d*\ year old',
'\d*\ years old',
'\d*\ y/o'
]
matches = []
for i in fil:
try:
# i.replace('-',' ')
for r in re_list:
matches.append(re.findall(r,i))
else:
pass
# matches+=(' ')
except:
pass
# matches+=[]
print((matches))
что-то вроде это не работает, и да, я знаю почему, как я могу написать оператор if с условием re.findall.
for r in re_list:
if r in i:
matches.append(re.findall(r,i))
output:
[['23-year-old'], [], [], []]
[['23-year-old'], [], [], [], [], [], [], []]
[['23-year-old'], [], [], [], [], [], [], [], [], [], ['42 years old'], []]
[['23-year-old'], [], [], [], [], [], [], [], [], [], ['42 years old'], [], [], [], [], []]
[['23-year-old'], [], [], [], [], [], [], [], [], [], ['42 years old'], [], [], [], [], [], [], [], [], []]
[['23-year-old'], [], [], [], [], [], [], [], [], [], ['42 years old'], [], [], [], [], [], [], [], [], [], ['30-year-old'], [], [], []]
Ожидается:
[['23-year-old']]
[['23-year-old'], []]
[['23-year-old'], [], ['42 years old']]
[['23-year-old'], [], ['42 years old'], []]
[['23-year-old'], [], ['42 years old'], [], []]
[['23-year-old'], [], ['42 years old'], [], [], ['30-year-old']]