Usuwanie spacji przed określonym znakiem w stringu [python]

0

Mam problem z usunięciem spacji, która występuje w dowolnym ciągu znaków podawanym jako argument do funkcji, przed kropką. Kod programu https://ideone.com/6L3xGB

1

Trochę po łebkach:

print('.'.join([x.rstrip() for x in raw_input().split('.')]))

https://ideone.com/Ix92GQ

0

Działa pięknie tylko ja bym na to myślę nie wpadł prędko, czy mógłbyś to jakoś wytłumaczyć albo przerobić to co ja miałem? Bo co robi rstrip() input() i join() wiem, natomiast nie rozumiem dlaczego w kwadratowym nawiasie i ta pętla for tak wygląda..

2

Bardziej po ludzku :)

def spaceDotReplaceAll(s):
	return s.replace(" .", ".")

def spaceDotReplaceFirst(s):
	return s.replace(" .", ".", 1)

testStr = "one . dwa. three . . ."

print (spaceDotReplaceAll(testStr))
print (spaceDotReplaceFirst(testStr))

Przecież chcemy zamienić wszystkie " ." na ".".

Jeśli chodzi o Twój kod @luckiblue :

  1. replace zwraca nowy string, a nie zmienia istniejącego,
  2. kiedy skrócisz string tekst wewnątrz pętli, to pętla będzie wyjeżdżać poza zakres.

1 użytkowników online, w tym zalogowanych: 0, gości: 1