Witam!!
Czy wie ktoś może jak liczyć występowanie " "(spacji) w np tekscie: ashdj ashd kajsdh kasjdh aksjdh asd ?
Witam!!
Czy wie ktoś może jak liczyć występowanie " "(spacji) w np tekscie: ashdj ashd kajsdh kasjdh aksjdh asd ?
Ja bym zrobił
input = "ashdj ashd kajsdh kasjdh aksjdh asd "
print(len(input.split(" "))-1)
Ale to policzy też spacje wielokrotne.
a dało by się to zrobić bez split? - wiem o tym ale bez tego mi zależy .
No możesz re.findall() ale będzie wolniejsze i ogólnie moim zdaniem armata na muchę.
Aha, a jak myślisz udało by się to zrobić przy użyciu pętli for ? podzielić to i dodać do listy a potem z listy jakoś powyłapywać to ?
Jasne że tak, ale to jest bardzo nie-pythonowe i niskopoziomowe rozwiązanie, dlatego nawet go nie proponowałem ;] Jak chcesz takie rzeczy robić zapomocą pętli to sobie w C albo asemblerze pisz a nie w takim eleganckim języku jak python ;] Ale jak chcesz:
input = "ashdj ashd kajsdh kasjdh aksjdh asd "
counter = 0
for character in input:
if character == " ":
counter+=1
print(counter)
Można też inne eleganckie rozwiązanie zastosować:
input = "ashdj ashd kajsdh kasjdh aksjdh asd "
print(len(list(filter(lambda x: x==" ", input))))
Sam bym to zrobił przy split ale do szkoły mi jest potrzebne z pętlą ...
A i czy dało by rade znaleŹć miejsce wystepowania tych "" ?
das dasd
to 4
Można też inne eleganckie rozwiązanie zastosować:
input = "ashdj ashd kajsdh kasjdh aksjdh asd "
print(len(list(filter(lambda x: x==" ", input))))
Tutaj to dopiero z armatą wyjechałeś :P (filtery i mapy, jakkolwiek ładne, w pythonie najczęściej się zastępują list comprehension)
sum(1 if c == ' ' else 0 for c in input)
len([c for c in input if c == ' ']) # alternatywnie bliżej Twojego,
sum(c == ' ' for c in input) # można i tak, ale to znowu brzydkie :P
Edit:
A i czy dało by rade znaleŹć miejsce wystepowania tych "" ?
das dasd
to 4
>>> "das das".find(' ')
3 #indeksujemy od 0, jak ccesz to dodaj 1