функция print_var()def var2str(var, vars_data = locals()):
rt = [var_name for var_name in vars_data if id(var) == id(vars_data[var_name])]
return rt[0] if len(rt) == 1 else rt
def print_var(var, equal=" = "):
from copy import copy
var_val = copy(var)
if isinstance(var_val, str): var_val = f"'{var_val}'"
print(f"{var2str(var)}{equal}{var_val}")
Надо из строки
"1, 43, qweqwe [123] = f"
получить
"[123]"
.
сделал так:
st = "1, 43, qweqwe [123] = f"
n_str = ''
for i, symb in enumerate(st):
if symb == "[":
for j in st[i:]:
n_str += j
if j == ']':
break
print_var(n_str)
работает, но если в строке несколько скобок то код просто их в одну строку засовывает.
"1, 43, qweqwe [123] = [f]"
=>
"[123][f]"
. Не пойму как их разъединить (
["[123]", "[f]"]
). Попробовал так:
st = "1, 43, qweqwe [123] = [f]"
+n_str = {}
for i, symb in enumerate(st):
if symb == "[":
for j in st[i:]:
- n_str[i] += j
if j == ']':
break
print_var(n_str)
но тогда выходит ошибка
KeyError
(сверху на красной строке). Сделал так:
n_str[str(i)] += j
- та же самая ошибка.
Так как их разъединить?