Форум сайта python.su
Здравствуйте!
Когда меняю 2 значения все работает, когда 3 пишет ошибку
ValueError: not enough values to unpack (expected 3, got 2)
Текст - Назначение:Площадь: кв.м.Количество этажейАдрес:Кадастровый номер:
Работает http://prntscr.com/1zgqa8v
for x, y in ("“,”"):
input_str = input_str.replace(x, y)
print(input_str)
Ошибка http://prntscr.com/1zgqckp
for x, y, z in ("“,”“),(”0“,”"):
input_str = input_str.replace(x, y, z)
print(input_str)
Прошу помочь в уточнении ошибки.
Отредактировано PSAS (Ноя. 13, 2021 21:58:56)
Офлайн
PSASValueError: not enough values to unpack (expected 3, got 2)
PSASЗдесь x и y получают значения, а z не получает, потому что кортежи двухэлементные, а не трёхэлементные.for x, y, z in ("a", ""),("0", ""):
Офлайн
Спасибо.
Т.е. получается этот шаблон только для замены не более 2 параметров.
Офлайн
PSASНе шаблон, а метод строки. Метод заменяет что-то одно на что-то одно. Если ты хочешь заменять что-то несколько на что-то одно, то надо использовать re.sub() . А если ты хочешь заменять что-то несколько на что-то несколько, то надо использовать замену по словарю. Для этого также используется re.sub(), только там задействуется замена через лямбда-функцию, внутри которой словарь.
Т.е. получается этот шаблон только для замены не более 2 параметров.
Отредактировано py.user.next (Ноя. 14, 2021 09:35:32)
Офлайн