как записать 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)