У меня есть функция, которая предназначена для анализа текстового файла, поиска соответствия регулярному выражению (ip + port) и возврата списка с уникальным значением:
def parser (file):
ip_list = []
pattern = re.compile('[0-9]+(?:\.[0-9]+){3}.port.*')
for i, line in enumerate(open(file)):
for match in re.finditer(pattern, line):
ip_list.append(match.group())
unique_ip = reduce(lambda l, x: l if x in l else l+[x], ip_list,[])
return [unique_ip]
Это работает довольно хорошо, но для некоторыхпричина, по которой я не могу перебрать возвращенный объект списка и получить текущий размер. Например, если я распечатаю
print(parser(file))
и получаю следующий вывод:
[['212.162.82.10 port 80', '212.162.81.10 port 8081']]
Я получаю список размером 1 (несмотря на то, что есть 2 элемента):
print(len(parser(file)))
1
Я не понимаю, где я делаю ошибку. ТНХ