Замена символа в строке.

CREATIVE

Новичок
Пользователь
Окт 19, 2020
21
0
1
Repl.it - Сайт
Python v 3.5

У меня есть пример "-1-(-2)", как мне заменить только второй минус так, что бы получилось например "-1~(-2)"?(Желательно использовать ".split" или ".replace", если так нельзя, то напишите, как можно)
 

shishkinav

Пользователь
Пользователь
Апр 18, 2020
11
9
3
Если формат отображения всегда такой, то можно поробовать такой костыль использовать
Python:
"-1-(-2)".replace('-(', '~(')

Если формат отображения будет меняться, то тогда уже нужно будет регулярку составлять
 
  • Мне нравится
Реакции: Student

CREATIVE

Новичок
Пользователь
Окт 19, 2020
21
0
1
Если формат отображения всегда такой, то можно поробовать такой костыль использовать
Python:
"-1-(-2)".replace('-(', '~(')

Если формат отображения будет меняться, то тогда уже нужно будет регулярку составлять
А если не будет скобок? Просто -1--2(так же могут быть варианты ввода "-1-2" и "1--2")
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
У меня есть пример "-1-(-2)", как мне заменить только второй минус так, что бы получилось например "-1~(-2)"?
Вот еще несколько вариантов:
Python:
s = "-1-(-2)"
s = s[0] + s[1:].replace('-', '~', 1)
print(s)
Python:
s = "-1-(-2)"
s = '~'.join([s[:2], s[3:]])
print(s)
Python:
s = "-1-(-2)"
s = s.replace('-', '@', 1).replace('-', '~', 1).replace('@', '-')
print(s)
 

CREATIVE

Новичок
Пользователь
Окт 19, 2020
21
0
1
Вот еще несколько вариантов:
Python:
s = "-1-(-2)"
s = s[0] + s[1:].replace('-', '~', 1)
print(s)
Python:
s = "-1-(-2)"
s = '~'.join([s[:2], s[3:]])
print(s)
Python:
s = "-1-(-2)"
s = s.replace('-', '@', 1).replace('-', '~', 1).replace('@', '-')
print(s)
А если не будет скобок? Просто -1--2(так же могут быть варианты ввода "-1-2" и "1--2")
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
А если не будет скобок? Просто -1--2(так же могут быть варианты ввода "-1-2" и "1--2")
Задача была заменить 2й минус на тильду. Для вариантов ввода: -1--2, -1-2, 1--2 можно использовать этот код:
Python:
s = "1--2"
s = s.replace('-', '@', 1).replace('-', '~', 1).replace('@', '-')
print(s)

s = "-1-2"
s = s.replace('-', '@', 1).replace('-', '~', 1).replace('@', '-')
print(s)

s = "-1--2"
s = s.replace('-', '@', 1).replace('-', '~', 1).replace('@', '-')
print(s)
 
  • Мне нравится
Реакции: shishkinav

alext

Популярный
Пользователь
Май 10, 2020
288
66
28
Задача была заменить 2й минус на тильду. Для вариантов ввода: -1--2, -1-2, 1--2 можно использовать этот код:
Python:
s = "1--2"
s = s.replace('-', '@', 1).replace('-', '~', 1).replace('@', '-')
print(s)

s = "-1-2"
s = s.replace('-', '@', 1).replace('-', '~', 1).replace('@', '-')
print(s)

s = "-1--2"
s = s.replace('-', '@', 1).replace('-', '~', 1).replace('@', '-')
print(s)
зачем ты все время по три реплейса суешь? один это делает, для чего еще два.
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
зачем ты все время по три реплейса суешь? один это делает, для чего еще два.
Задача заменить второй - в строке на ~:
Первый рейлейс заменяет первый - на @
второй рейлейс заменяет второй - на ~
третий рейлейс заменяет @ на - (восстанавливает первый минус)
 

Форум IT Специалистов