Для замены пробелов на дефисы в строке можно использовать метод replace() в Python:
``` python
string = "Пример строки с пробелами"
new_string = string.replace(" ", "-")
print(new_string)
```
Результат:
```
Пример-строки-с-пробелами
```
Для замены дефисов на пробелы можно использовать тот же метод replace(), но в этом случае передать первый аргумент "-":
``` python
string = "Пример-строки-с-дефисами"
new_string = string.replace("-", " ")
print(new_string)
```
Результат:
```
Пример строки с дефисами
```
Чтобы заменить пробелы на дефисы и сохранить GET-параметры в URL-адресе в исходной форме, можно разбить URL-адрес на две части: до и после "?" и затем применить замену пробелов на дефисы только на первую часть:
``` python
url = "https://www.example.com/page?param1=value1¶m2=value2"
parts = url.split("?")
if len(parts) > 1:
base_url, query_string = parts[0], parts[1]
new_base_url = base_url.replace(" ", "-")
new_url = new_base_url + "?" + query_string
print(new_url)
else:
new_url = url.replace(" ", "-")
print(new_url)
```
Результат:
```
https://www.example.com/page?param1=value1¶m2=value2
```
В этом примере GET-параметры будут сохранены в исходной форме, а замена пробелов на дефисы будет применена только к основному URL-адресу. Обратное преобразование можно сделать, выполнив замену дефисов на пробелы только на основной части URL-адреса:
``` python
new_base_url = new_url.split("?")[0]
final_url = new_base_url.replace("-", " ") + "?" + query_string
print(final_url)
```
Результат:
```
https://www.example.com/page?param1=value1¶m2=value2
```
Таким образом, URL-адрес будет восстановлен в исходную форму с сохранением GET-параметров.