Как уже сказали другие list.append()
не имеет возвращаемого значения. Вот почему dat_test
всегда будет установлен на None
.
. Вы должны использовать append вот так list_test.append(pn)
, не добавляя его в новую переменную. Тогда, если вы print(list_test)
вместо print(dat_test)
, с вами все будет в порядке.
for sentence in mylist:
global typ, DN, pn
matches = re.finditer(regex_f, sentence, re.MULTILINE | re.IGNORECASE)
for matchNum, match in enumerate(matches, start=1):
subst = sentence[match.end():]
pn_matches = re.findall(regexp, subst, re.MULTILINE | re.IGNORECASE)
if len(pn_matches) > 0:
pn = pn_matches
pn_p = ("{pn}".format(flansch=match.group(), pn=pn))
print(pn)
list_test = []
list_test.append(pn)
print(list_test)
else:
pn_p = '?'
print("no PN found".format(flansch=match.group()))
В зависимости от вашего реального варианта использования, я бы посоветовал подумать о размещении list_test
в вашем коде, так каквсегда сбрасывается в пустой список для каждого предложения, где len(pn_matches) > 0
. В результате вы получите только последний результат в списке!
РЕДАКТИРОВАТЬ:
list_test = []
for sentence in mylist:
global typ, DN, pn
matches = re.finditer(regex_f, sentence, re.MULTILINE | re.IGNORECASE)
for matchNum, match in enumerate(matches, start=1):
subst = sentence[match.end():]
pn_matches = re.findall(regexp, subst, re.MULTILINE | re.IGNORECASE)
if len(pn_matches) > 0:
pn = pn_matches
pn_p = ("{pn}".format(flansch=match.group(), pn=pn))
print(pn)
list_test.append(pn)
print(list_test)
else:
pn_p = '?'
print("no PN found".format(flansch=match.group()))