• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

python string zamiana liter

0 głosów
2,440 wizyt
pytanie zadane 10 listopada 2018 w Python przez gunaterek Bywalec (2,760 p.)

Witam, mam problem z funkcją. Probuje zamienić w stringu wszystkie litery na "*" a odstępy zostawić. 

def check_space(word):
    cout = 0
    for x in word:
        if " " == x:
            continue
        else:
           word[cout] = '*'
        cout += 1
    return word

problem jest w tym else bo nie chce mi zamienić tej litery na *. Proszę o pomoc :)

3 odpowiedzi

0 głosów
odpowiedź 10 listopada 2018 przez Benek Szeryf (93,910 p.)
wybrane 10 listopada 2018 przez gunaterek
 
Najlepsza
import re
re.sub("[^\s]", "*", word)
0 głosów
odpowiedź 10 listopada 2018 przez RafalS VIP (122,780 p.)
edycja 10 listopada 2018 przez RafalS
re.sub(re.compile(r'[^\s]'),'*', word)

 

0 głosów
odpowiedź 10 listopada 2018 przez adrian17 Mentor (355,180 p.)
word[cout] = '*'

Powód jest prosty - stringi w Pythonie nie są mutowalne. Musisz stworzyć nowy string - albo ręcznie, albo z użyciem Pythonowych narzędzi do podstawień. Benek w swojej odpowiedzi pokazał "bezpośrednie" rozwiązanie z użyciem regexów, który stworzy nowey string.

Podobne pytania

0 głosów
1 odpowiedź 1,426 wizyt
pytanie zadane 10 marca 2019 w Python przez Pico Obywatel (1,330 p.)
0 głosów
3 odpowiedzi 811 wizyt
pytanie zadane 8 maja 2020 w Python przez TeaCup Obywatel (1,370 p.)
+1 głos
1 odpowiedź 627 wizyt
pytanie zadane 13 września 2020 w Python przez TeaCup Obywatel (1,370 p.)

93,733 zapytań

142,669 odpowiedzi

323,287 komentarzy

63,293 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...