как записать 2 разных числа из 1 переменной в 2 другие? python

нужно записать 2 числа из 1 переменной в 2 другие переменные. Пример:

a = """List of devices attached 
127.0.0.1:21513 device
127.0.0.1:21512 device"""

b = 127.0.0.1:21513
c = 127.0.0.1:21512

Ответы (3 шт):

Автор решения: NTA
a = """List of devices attached 
127.0.0.1:21513 device
127.0.0.1:21512 device"""

a = a.split('\n') #разбиваем строку

b = a[1].rstrip(' device') #берем 1 часть (0 часть это List of ...) и убираем device
c = a[2].rstrip(' device') #берем 2 часть и делаем тоже самое

Результат:

127.0.0.1:21513
127.0.0.1:21512
→ Ссылка
Автор решения: Oopss
import re

a = """List of devices attached 
127.0.0.1:21513 device
127.0.0.1:21512 device"""

add_port = re.findall(r'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):(\d+)', a)

for ip_address,my_port in add_port:
    print(f'{ip_address}:{my_port}')

127.0.0.1:21513
127.0.0.1:21512
→ Ссылка
Автор решения: popovic86

Если текст будет меняться, то да, однозначно с помощью регулярных выражений. Если чисто для этого текста, то можно просто срезами:

a = """List of devices attached 
127.0.0.1:21513 device
127.0.0.1:21512 device"""

b, c = a[26:41], a[49:64]

print(b)  # 127.0.0.1:21513
print(c)  # 127.0.0.1:21512

Или поиграться с методами строк, там вариантов море. Если навыков работы с регулярками ещё недостаточно, то самое то, можно хоть так:

a = """List of devices attached 
127.0.0.1:21513 device
127.0.0.1:21512 device"""


def get_2ip(string: str):
    result = ""
    for ind, i in enumerate(string):
        if i in ".:0123456789":
            result += i
            if string[ind + 2] == "d":
                result += "$$$"

    result = result.split("$$$")
    return result[0], result[1]


b, c = get_2ip(a)
print(b,c)
→ Ссылка