Задать вопрос
@Levmuhin1

Как получить локальную переменную из цикла for?

Всем привет, вопрос как мне кажется достаточно простой, но я не могу понять как достать переменную "r" из цикла for ?

for ip in list:
    textlookfor = r"ftp://\d+.\d+.\d+.\d+.\d.\d+"
    r = re.findall(textlookfor, ip)
  • Вопрос задан
  • 848 просмотров
Подписаться 2 Простой 1 комментарий
Решения вопроса 1
@Levmuhin1 Автор вопроса
Сам задал , сам решил :)

i = []
for ip in list:
    textlookfor = r"ftp://\d+.\d+.\d+.\d+.\d.\d+"
    r = re.findall(textlookfor, ip)
    i.append(r)

print(i)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
shabelski89
@shabelski89
engineer
result = [re.findall(r"ftp://\d+.\d+.\d+.\d+.\d.\d+", ip) for ip in list]
print(result)
Ответ написан
sswwssww
@sswwssww
Что значит достать? Что ты хочешь с ней сделать? Напечатать? Сохранить куда-то?
На каждой итерации цикла for твоя переменная r будет перезаписываться, и когда цикл завершится то в r будет значение записанное на последнем цикле.
1-ый способ, печатать значение r на каждой итерации.
for ip in ip_adresses:
    textlookfor = r"ftp://\d+.\d+.\d+.\d+.\d.\d+"
    r = re.findall(textlookfor, ip)
    print(r)


2-ой способ, сохранить все в список и распечатать.
result = []
for ip in ip_adresses:
    textlookfor = r"ftp://\d+.\d+.\d+.\d+.\d.\d+"
    r = re.findall(textlookfor, ip)
    result.append(r)

print(result)


3-ий способ, создание генератора и выдача по одному результату за раз.
def f(data):
    for ip in ip_adresses:
        textlookfor = r"ftp://\d+.\d+.\d+.\d+.\d.\d+"
        r = re.findall(textlookfor, ip)
        yield r

res = f(my_data)
print(next(res))
print(next(res))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы