Перейти к содержимому

Как посчитать количество пробелов в строке python

  • автор:

КАК ПОСЧИТАТЬ КОЛИЧЕСТВО ПРОБЕЛОВ В СТРОКЕ PYTHON

Чтобы посчитать количество пробелов в строке Python, можно использовать метод count() , который позволяет посчитать количество вхождений заданного символа или подстроки в строке:

string = «Пример строки с пробелами»count = string.count(» «)print(count) # выведет 3

В данном примере мы создаем строковую переменную string и вызываем для нее метод count() с аргументов » «, то есть с пробелом. Метод возвращает количество пробелов в строке, которое сохраняем в переменную count и выводим на экран.

Python с нуля. Урок 7 — Работа со строками

Однопроходные алгоритмы на python. Часто нужны на собеседованиях

Программирование на Python — 54 — Подсчет повторяющихся слов в тексте

Курс Python 3 — Логические выражения

Подсчитать количество пробелов в строке Python / pygame.ru

Уроки Python / Как найти символ в строке

9 Cтроки и операции над ними Python

Программа на Python , высчитывающая количество пробелов,символов,слов в тексте.

Python Задача: Подсчитать и вывести количество гласных

Посчитать Уникальные Слова в Тексте — Python задачи с технических собеседований

BLGPG-B8BAEB3161F6-24-04-30-12

Новые материалы:

  • Эллипсис в python
  • Нормированная гистограмма python
  • Библиотека serial python
  • Покажите отличие python
  • Как нарисовать звезду pygame
  • Python строку в байты
  • Python turtle сердечко
  • Python для android ide
  • Python круговая диаграмма seaborn
  • Blank line at end of file как исправить python
  • Инвертировать bool python
  • Python переменные окружения

Python, длина строки без учета пробелов

Можно просто вычесть кол-во пробелов: n = len(s) — s.count(» «) .

Достоинство, что не требуется новую строку создавать: O(1) в памяти—для больших строк может иметь значение в производительности.

Если нужно поддерживать произвольные пробельные символы (перевод строки ‘\n’ , таб ‘\t’ , неразрывный пробел (U+00A0), итд), то можно использовать регулярное выражение, чтобы посчитать кол-во непробельных символов в строке:

import re n = len(re.findall(u"\\S", s, flags=re.UNICODE)) 

Можно избежать создания нового списка, если использовать finditer() :

n = sum(1 for m in re.finditer(u"\\S", s, flags=re.UNICODE) if m) 

этот код требует O(1) памяти (константа независящая от размера входной строки), но на практике даже для умеренно больших строк он может быть медленнее более жадных вариантов, где память пропорциональна вводу O(n) (решения, использующие список, новую строку).

Отслеживать
ответ дан 29 сен 2016 в 17:03
52.4k 11 11 золотых знаков 110 110 серебряных знаков 312 312 бронзовых знаков

len(''.join("99 99 99 99".split())) 

сравнение быстродействия способов:

import timeit, sys, itertools, re, random, string def var1(): return len([s for s in _str if not s == ' ']) def var2(): return len(list(itertools.chain(*_str.split()))) def var3(): return len(''.join(_str.split())) def var4(ln=0): for с in _str: if с != ' ': ln += 1 return ln def var5(): return sum(map(lambda c: int(not(c == ' ')) , _str)) def var6(): return sum(map(lambda c: 1 if c != ' ' else 0, _str)) def var7(): return len(_str.replace(" ", "")) def var8(): return len(_str) - _str.count(" ") def var9(): return len(re.findall(u"\\S", _str, flags=re.UNICODE)) def var10(): return sum(1 for m in re.finditer(u"\\S", _str, flags=re.UNICODE) if m) def print_results(data: dict): # печать результатов одного прохода x = ['average', 'min', 'max'] f = ' ' * (len(x) + 1) print(f.format('', *x)) for e, (k, v) in enumerate(sorted(data.items(), key=lambda it: it[1][1]), start=1): gv = (''.format(g) for g in v) print(f.format('%s %s' % (e, k), *gv)) # начисление "баллов", кто первее, тоиу больше - enumerate for e, (k, v) in enumerate(sorted(data.items(), key=lambda it: it[1][1], reverse=True), start=1): try: best_var[k] += e except KeyError: best_var[k] = e def get_str(size: int, asc: bool, a=5, b=10, i=''): # ascii или ascii+noascii символы asc_ = ''.join(map(chr, range(256))) if asc else string.ascii_letters _str, ln = '', 0 # увеличивать строку, пока размер не станет нужным while ln < size: _str += ' ' + ''.join(random.choice(asc_) for _ in range(random.randint(a, b))) # a, b - регулировать пробелы ln = int(sys.getsizeof(_str)/1024) # инфо о строке ss = _str.split() c = len(ss) l, c, = len(_str), _str.count(' ') w = sum(len(s) for s in ss)/c print('\n~<>Kb, символы <> <>, <> ~ %, сред длина слова:\nby :'.format( ln, l, 'ascii+noascii' if asc else 'ascii', i, c/l*100, w)) return _str if __name__ == '__main__': best_var = <> repeat, count = 5, 1 target = [n for n in globals() if n.startswith('var')] # размеры строк for size in 1, 1024, 1024*10: data = <> # ascii или ascii+noascii строка for asc in True, False: # кол-во пробелов for i, a, b in (['минимум пробелов', 20, 25], ['сред пробелов', 4, 5], ['много пробелов', 1, 2], ['случайно пробелов', 1, 1000]): # сформировать строку _str = get_str(size, asc, a, b, i) # выполнить var функции for n in target: t = timeit.Timer(globals()[n]).repeat(repeat, count) data.update() print_results(data) # вывести результат для строки # вывести баллы print('\n'+'-'*20) for e, (k, v) in enumerate(sorted(best_var.items(), key=lambda kv: kv[1], reverse=True), start=1): print('<> место - <> баллов'.format(e, k, v)) 
~1Kb, символы 989 ascii+noascii, минимум пробелов ~ 4.65%, сред длина слова:19.347826 by : average min max 1 var8 0.000004 0.000003 0.000005 2 var7 0.000006 0.000006 0.000008 3 var3 0.000022 0.000022 0.000025 4 var2 0.000063 0.000054 0.000085 5 var1 0.000124 0.000117 0.000134 6 var4 0.000172 0.000157 0.000187 7 var9 0.000264 0.000157 0.000401 8 var6 0.000235 0.000213 0.000295 9 var10 0.000311 0.000279 0.000343 10 var5 0.000439 0.000389 0.000494 ~1Kb, символы 989 ascii+noascii, сред пробелов ~ 18.4%, сред длина слова:4.252747 by : average min max 1 var8 0.000004 0.000003 0.000004 2 var7 0.000013 0.000012 0.000015 3 var3 0.000031 0.000030 0.000033 4 var2 0.000072 0.000068 0.000081 5 var1 0.000115 0.000111 0.000130 6 var9 0.000145 0.000138 0.000164 7 var4 0.000150 0.000143 0.000165 8 var6 0.000235 0.000213 0.000259 9 var10 0.000267 0.000258 0.000283 10 var5 0.000417 0.000385 0.000468 ~1Kb, символы 987 ascii+noascii, много пробелов ~ 40.7%, сред длина слова:1.375622 by : average min max 1 var8 0.000005 0.000004 0.000006 2 var7 0.000019 0.000018 0.000020 3 var3 0.000038 0.000035 0.000045 4 var2 0.000086 0.000076 0.000112 5 var9 0.000106 0.000098 0.000137 6 var1 0.000120 0.000104 0.000153 7 var4 0.000119 0.000117 0.000123 8 var10 0.000193 0.000178 0.000228 9 var6 0.000228 0.000216 0.000264 10 var5 0.000409 0.000386 0.000447 ~1Kb, символы 1491 ascii+noascii, случайно пробелов ~ 0.738%, сред длина слова:127.818182 by : average min max 1 var8 0.000003 0.000003 0.000004 2 var7 0.000004 0.000004 0.000005 3 var3 0.000027 0.000026 0.000029 4 var2 0.000078 0.000068 0.000109 5 var1 0.000207 0.000201 0.000223 6 var9 0.000247 0.000229 0.000274 7 var4 0.000261 0.000235 0.000312 8 var6 0.000344 0.000319 0.000381 9 var10 0.000459 0.000439 0.000503 10 var5 0.000605 0.000572 0.000640 ~1Kb, символы 1007 ascii, минимум пробелов ~ 4.27%, сред длина слова:22.418605 by : average min max 1 var8 0.000003 0.000003 0.000004 2 var7 0.000006 0.000005 0.000007 3 var3 0.000009 0.000008 0.000010 4 var2 0.000045 0.000040 0.000056 5 var1 0.000139 0.000116 0.000164 6 var9 0.000168 0.000151 0.000187 7 var4 0.000161 0.000151 0.000195 8 var6 0.000229 0.000214 0.000275 9 var10 0.000303 0.000299 0.000314 10 var5 0.000406 0.000383 0.000435 ~1Kb, символы 1001 ascii, сред пробелов ~ 18.0%, сред длина слова:4.561111 by : average min max 1 var8 0.000003 0.000003 0.000004 2 var7 0.000012 0.000011 0.000012 3 var3 0.000019 0.000018 0.000020 4 var2 0.000064 0.000056 0.000091 5 var1 0.000117 0.000105 0.000148 6 var9 0.000142 0.000131 0.000177 7 var4 0.000151 0.000138 0.000182 8 var6 0.000222 0.000213 0.000257 9 var10 0.000265 0.000253 0.000302 10 var5 0.000409 0.000382 0.000451 ~1Kb, символы 1001 ascii, много пробелов ~ 40.0%, сред длина слова:1.502500 by : average min max 1 var8 0.000004 0.000004 0.000005 2 var7 0.000021 0.000020 0.000023 3 var3 0.000033 0.000031 0.000036 4 var2 0.000077 0.000076 0.000081 5 var1 0.000111 0.000099 0.000139 6 var9 0.000110 0.000104 0.000138 7 var4 0.000123 0.000123 0.000124 8 var10 0.000207 0.000197 0.000231 9 var6 0.000234 0.000225 0.000257 10 var5 0.000419 0.000408 0.000441 ~1Kb, символы 1357 ascii, случайно пробелов ~ 0.221%, сред длина слова:451.333333 by : average min max 1 var8 0.000002 0.000002 0.000003 2 var7 0.000003 0.000003 0.000004 3 var3 0.000004 0.000004 0.000005 4 var2 0.000047 0.000044 0.000051 5 var1 0.000161 0.000150 0.000198 6 var9 0.000217 0.000208 0.000246 7 var4 0.000221 0.000210 0.000264 8 var6 0.000302 0.000287 0.000339 9 var10 0.000449 0.000418 0.000470 10 var5 0.000557 0.000517 0.000579 ~1024Kb, символы 1048550 ascii+noascii, минимум пробелов ~ 4.62%, сред длина слова:19.736590 by : average min max 1 var8 0.001648 0.001501 0.001976 2 var7 0.004883 0.004693 0.005125 3 var3 0.020394 0.019550 0.021583 4 var2 0.062164 0.060919 0.063352 5 var1 0.144303 0.135828 0.159222 6 var9 0.178833 0.176592 0.182050 7 var4 0.199833 0.196554 0.205470 8 var6 0.251038 0.246122 0.259824 9 var10 0.335161 0.331631 0.338379 10 var5 0.452639 0.443677 0.466173 ~1024Kb, символы 1048543 ascii+noascii, сред пробелов ~ 18.5%, сред длина слова:4.216881 by : average min max 1 var8 0.002237 0.002042 0.002632 2 var7 0.011823 0.011346 0.012312 3 var3 0.033965 0.032902 0.034526 4 var2 0.084031 0.081243 0.087056 5 var1 0.127829 0.126500 0.129401 6 var9 0.158385 0.154023 0.162586 7 var4 0.180536 0.178501 0.182689 8 var6 0.250811 0.246209 0.255653 9 var10 0.285592 0.283369 0.288488 10 var5 0.454162 0.445657 0.470404 ~1024Kb, символы 1048539 ascii+noascii, много пробелов ~ 40.2%, сред длина слова:1.422101 by : average min max 1 var8 0.002705 0.002559 0.002869 2 var7 0.019173 0.018673 0.019514 3 var3 0.044011 0.041986 0.045685 4 var2 0.092004 0.090061 0.095451 5 var1 0.117086 0.112984 0.122531 6 var9 0.116413 0.113467 0.120848 7 var4 0.152174 0.150377 0.154708 8 var10 0.209933 0.203534 0.214091 9 var6 0.255368 0.251358 0.260667 10 var5 0.449192 0.448205 0.450778 ~1024Kb, символы 1048798 ascii+noascii, случайно пробелов ~ 0.585%, сред длина слова:162.651182 by : average min max 1 var8 0.000781 0.000757 0.000808 2 var7 0.002128 0.001986 0.002363 3 var3 0.014138 0.013806 0.014757 4 var2 0.056218 0.054372 0.059153 5 var1 0.141643 0.137505 0.146517 6 var9 0.188750 0.184148 0.193892 7 var4 0.205695 0.201427 0.209657 8 var6 0.265923 0.258749 0.275960 9 var10 0.344992 0.331897 0.352945 10 var5 0.458320 0.446551 0.482520 ~1024Kb, символы 1048574 ascii, минимум пробелов ~ 4.26%, сред длина слова:22.496930 by : average min max 1 var8 0.001505 0.001434 0.001623 2 var7 0.004558 0.004468 0.004666 3 var3 0.006457 0.006183 0.006700 4 var2 0.045978 0.045481 0.046309 5 var1 0.136627 0.132597 0.143002 6 var9 0.180005 0.172714 0.186334 7 var4 0.195560 0.193381 0.200404 8 var6 0.243767 0.238857 0.246907 9 var10 0.333131 0.328723 0.344105 10 var5 0.439651 0.432095 0.446828 ~1024Kb, символы 1048554 ascii, сред пробелов ~ 18.2%, сред длина слова:4.498592 by : average min max 1 var8 0.002240 0.002156 0.002484 2 var7 0.011550 0.011379 0.011812 3 var3 0.019653 0.018650 0.020899 4 var2 0.064917 0.063636 0.066031 5 var1 0.122076 0.120085 0.123909 6 var9 0.151459 0.148554 0.153874 7 var4 0.178413 0.175546 0.183586 8 var6 0.244974 0.243148 0.246615 9 var10 0.283760 0.279793 0.286557 10 var5 0.444185 0.440670 0.446956 ~1024Kb, символы 1048552 ascii, много пробелов ~ 40.0%, сред длина слова:1.500690 by : average min max 1 var8 0.002606 0.002548 0.002662 2 var7 0.019870 0.019037 0.020380 3 var3 0.033964 0.032878 0.036014 4 var2 0.086213 0.085267 0.087383 5 var1 0.111353 0.109741 0.114724 6 var9 0.112563 0.111011 0.114503 7 var4 0.150361 0.147747 0.152117 8 var10 0.210284 0.209237 0.210916 9 var6 0.250411 0.247752 0.257964 10 var5 0.453721 0.449482 0.457010 ~1024Kb, символы 1048782 ascii, случайно пробелов ~ 0.197%, сред длина слова:506.147969 by : average min max 1 var8 0.000675 0.000646 0.000688 2 var7 0.001583 0.001502 0.001764 3 var3 0.002933 0.002437 0.003270 4 var2 0.044154 0.043674 0.045305 5 var1 0.135097 0.134006 0.136763 6 var9 0.192888 0.190767 0.194671 7 var4 0.200822 0.199586 0.203285 8 var6 0.242871 0.240081 0.246809 9 var10 0.352606 0.344659 0.360171 10 var5 0.440387 0.433437 0.446731 ~10240Kb, символы 10485723 ascii+noascii, минимум пробелов ~ 4.63%, сред длина слова:19.713800 by : average min max 1 var8 0.015642 0.015346 0.016142 2 var7 0.050325 0.049391 0.052610 3 var3 0.210275 0.209163 0.212247 4 var2 0.676338 0.669641 0.682927 5 var1 1.389115 1.368039 1.398386 6 var9 1.821897 1.803700 1.843339 7 var4 1.994729 1.989236 2.000370 8 var6 2.491980 2.478701 2.511737 9 var10 3.274745 3.246427 3.296595 10 var5 4.452530 4.420066 4.492152 ~10240Kb, символы 10485725 ascii+noascii, сред пробелов ~ 18.5%, сред длина слова:4.214989 by : average min max 1 var8 0.022165 0.021553 0.022992 2 var7 0.119701 0.117069 0.122963 3 var3 0.363989 0.359079 0.367310 4 var2 0.885933 0.878938 0.891297 5 var1 1.294802 1.277431 1.311001 6 var9 1.617785 1.611125 1.622048 7 var4 1.818916 1.810579 1.830913 8 var6 2.547398 2.510476 2.582020 9 var10 2.828624 2.809815 2.854437 10 var5 4.480788 4.459377 4.500519 ~10240Kb, символы 10485725 ascii+noascii, много пробелов ~ 40.2%, сред длина слова:1.421055 by : average min max 1 var8 0.028091 0.027061 0.030288 2 var7 0.196943 0.195305 0.199955 3 var3 0.474881 0.461343 0.482662 4 var2 1.008938 0.997040 1.027451 5 var1 1.161058 1.136066 1.171011 6 var9 1.215664 1.164296 1.233138 7 var4 1.543121 1.527249 1.553288 8 var10 2.080153 2.052537 2.101885 9 var6 2.522675 2.515321 2.530619 10 var5 4.563395 4.491082 4.623651 ~10240Kb, символы 10486201 ascii+noascii, случайно пробелов ~ 0.587%, сред длина слова:162.080908 by : average min max 1 var8 0.007789 0.007583 0.008320 2 var7 0.019142 0.018552 0.019879 3 var3 0.165453 0.162585 0.168957 4 var2 0.615963 0.611608 0.620655 5 var1 1.440067 1.421817 1.455080 6 var9 1.899005 1.880525 1.917015 7 var4 2.041620 2.014194 2.117118 8 var6 2.530870 2.444620 2.644582 9 var10 3.375323 3.322056 3.430780 10 var5 4.403470 4.363339 4.462611 ~10240Kb, символы 10485746 ascii, минимум пробелов ~ 4.26%, сред длина слова:22.500840 by : average min max 1 var8 0.015668 0.015235 0.016608 2 var7 0.045992 0.045382 0.046675 3 var3 0.076034 0.074871 0.076558 4 var2 0.534177 0.530063 0.538483 5 var1 1.335994 1.329036 1.342069 6 var9 1.802360 1.792313 1.820512 7 var4 1.954488 1.942886 1.964544 8 var6 2.426299 2.420271 2.436364 9 var10 3.302575 3.286494 3.319168 10 var5 4.434964 4.352420 4.603488 ~10240Kb, символы 10485737 ascii, сред пробелов ~ 18.2%, сред длина слова:4.499947 by : average min max 1 var8 0.021396 0.020741 0.021759 2 var7 0.114626 0.113296 0.115541 3 var3 0.226316 0.222824 0.229988 4 var2 0.728126 0.721727 0.737932 5 var1 1.257480 1.250478 1.265838 6 var9 1.558776 1.552425 1.565449 7 var4 1.782327 1.774427 1.787684 8 var6 2.444034 2.425254 2.466785 9 var10 2.867036 2.849253 2.882571 10 var5 4.398630 4.370555 4.425208 ~10240Kb, символы 10485735 ascii, много пробелов ~ 40.0%, сред длина слова:1.499905 by : average min max 1 var8 0.026567 0.026069 0.027204 2 var7 0.192424 0.190171 0.193983 3 var3 0.377138 0.371293 0.384058 4 var2 0.933870 0.931780 0.936487 5 var1 1.130904 1.126566 1.141807 6 var9 1.166317 1.150050 1.172436 7 var4 1.516546 1.510337 1.525137 8 var10 2.116518 2.085666 2.135315 9 var6 2.488669 2.479040 2.502971 10 var5 4.465629 4.457348 4.473298 ~10240Kb, символы 10485820 ascii, случайно пробелов ~ 0.198%, сред длина слова:502.932141 by : average min max 1 var8 0.007237 0.006813 0.007651 2 var7 0.016183 0.015791 0.016414 3 var3 0.030802 0.029833 0.031738 4 var2 0.468537 0.457903 0.477776 5 var1 1.375179 1.357010 1.388190 6 var9 1.879247 1.867879 1.896920 7 var4 2.016457 1.990694 2.060548 8 var6 2.413361 2.397260 2.420363 9 var10 3.465412 3.430199 3.499782 10 var5 4.380763 4.351999 4.431059 -------------------- 1 место var8 - 240 баллов 2 место var7 - 216 баллов 3 место var3 - 192 баллов 4 место var2 - 168 баллов 5 место var1 - 143 баллов 6 место var9 - 121 баллов 7 место var4 - 96 баллов 8 место var6 - 66 баллов 9 место var10 - 54 баллов 10 место var5 - 24 баллов 

Как посчитать количество пробелов в строке в Python

Обложка к статье

В обработке и анализе текстовых данных часто возникает задача подсчета определенных символов в строке. Одна из таких распространенных задач — подсчет количества пробелов. Это может быть необходимо для различных целей, таких как форматирование текста, анализ содержимого или предварительная обработка данных перед их дальнейшим использованием в алгоритмах машинного обучения и других приложениях.

В этой статье мы рассмотрим несколько способов, позволяющие посчитать количество пробелов в строке, начиная от базовых методов, таких как итерация по символам, до более продвинутых техник.

Подсчёт количества пробелов в строке в Python с помощью цикла for и условного оператора

Один из самых базовых и понятных подходов к подсчету пробелов в строке — это использование цикла for в сочетании с условным оператором. Этот метод заключается в переборе каждого символа в строке и проверке, является ли символ пробелом. Если да, то инкрементируется счетчик пробелов.

Пример кода

# Данная строка для анализа text = "Это пример строки, содержащей пробелы." # Инициализация счетчика пробелов space_count = 0 # Перебор каждого символа в строке for char in text: if char == " ": space_count += 1 # Вывод результата print(f"Количество пробелов в строке: ") # Вывод: Количество пробелов в строке: 4

Объяснение кода

  • Сначала задается строка text , в которой необходимо подсчитать количество пробелов.
  • Переменная space_count инициализируется значением 0. Эта переменная будет использоваться в качестве счетчика для подсчета пробелов в строке.
  • С помощью цикла for программа перебирает каждый символ в строке text . Для каждого символа выполняется проверка: если символ равен пробелу ( » » ), счетчик space_count увеличивается на 1.
  • По завершении цикла выводится общее количество найденных пробелов в строке.

Подсчёт количества пробелов в строке в Python с помощью метода count()

Метод count() является одним из встроенных строковых методов в Python, который предоставляет простой и эффективный способ подсчета количества вхождений подстроки в строке. Для подсчета пробелов в строке этот метод идеально подходит, так как он позволяет найти общее количество пробелов с минимальным кодом и высокой производительностью.

Пример кода

# Данная строка для анализа text = "Это пример строки, содержащей пробелы." # Использование метода count() для подсчета пробелов space_count = text.count(" ") # Вывод результата print(f"Количество пробелов в строке: ") # Вывод: Количество пробелов в строке: 4

Объяснение кода

В этом примере, чтобы посчитать количество пробелов в строке text , мы просто вызываем метод text.count(» «) , передавая в качестве аргумента строку, состоящую из одного пробела. Этот метод возвращает количество вхождений пробела в строку, которое затем присваивается переменной space_count .

Подсчёт количества пробелов в строке в Python с помощью регулярных выражений

Регулярные выражения представляют собой мощный инструмент для поиска и обработки текстовых данных в Python, позволяя выполнить сложные задачи с минимальным количеством кода. В контексте подсчета пробелов в строке регулярные выражения предоставляют гибкость для определения широкого диапазона условий поиска, включая различные типы пробельных символов.

Для подсчета количества пробелов в строке с использованием регулярных выражений можно воспользоваться модулем re и его функцией findall() , которая возвращает список всех найденных совпадений с заданным шаблоном. Простое пробельное место можно обозначить в регулярном выражении как » » , а для поиска любого пробельного символа (включая табуляции, переносы строк и т.д.) можно использовать специальный символ \s .

Пример кода

import re # Данная строка для анализа text = "Это пример строки, содержащей пробелы и\tтабуляцию." # Использование регулярных выражений для поиска пробелов spaces = re.findall(" ", text) # Для поиска всех видов пробельных символов используйте: re.findall("\s", text) # Подсчет количества найденных совпадений space_count = len(spaces) # Вывод результата print(f"Количество пробелов в строке: ") # Вывод: Количество пробелов в строке: 5

Объяснение кода

  • Сначала импортируется модуль re , который необходим для работы с регулярными выражениями.
  • Функция re.findall() принимает два аргумента: шаблон регулярного выражения и строку, в которой будет производиться поиск. В данном случае шаблон » » означает поиск обычных пробелов в строке text .
  • Результатом выполнения функции re.findall() является список spaces , содержащий все найденные совпадения, то есть каждый пробел в строке text
  • Для подсчета количества пробелов в строке вычисляется длина списка spaces с помощью функции len() . Это дает количество найденных совпадений, то есть количество простых пробелов в строке text .

Подсчёт количества пробелов в строке в Python с помощью list comprehensions и функции len()

Генераторы списков (list comprehensions) в сочетании с функцией len() представляют собой еще один способ подсчета количества пробелов в строке в Python. Этот метод использует возможности генераторов списков для создания списка, содержащего только те элементы исходной строки, которые соответствуют заданному критерию (в данном случае, пробелы), а затем применяет функцию len() для определения количества элементов в полученном списке.

Пример кода

# Данная строка для анализа text = "Это пример строки, содержащей пробелы." # Использование генератора списков и функции len() для подсчета пробелов space_count = len([char for char in text if char == " "]) # Вывод результата print(f"Количество пробелов в строке: ") # Вывод: Количество пробелов в строке: 4

Объяснение кода

  • [char for char in text if char == » «] является генератором списка, который итерируется по каждому символу в строке text с помощью выражения for char in text .
  • Для каждого символа char в строке text выполняется проверка условия if char == » » . Это условие истинно, если символ является пробелом.
  • Если условие истинно, символ (в данном случае пробел) добавляется в новый список. Таким образом, генератор списка создает список, содержащий все пробелы, найденные в строке text .
  • Функция len() затем применяется к полученному списку пробелов для определения его длины, которая равна количеству пробелов в исходной строке. Это количество присваивается переменной space_count .

Основные методы подсчета пробелов в строке в Python

Подсчет количества пробелов в строке Python

Python предлагает несколько эффективных и простых в использовании способов посчитать количество пробелов в строке. В этой статье мы рассмотрим различные подходы и представим примеры кода для каждого из них.

Метод count()

Один из наиболее прямых способов подсчета пробелов в строке — использование встроенного метода count() . Этот метод принимает подстроку в качестве аргумента и возвращает количество вхождений этой подстроки в строку.

s = "Пример строки с несколькими пробелами." print(s.count(' ')) #4

В этом примере метод count() ищет пробелы (‘ ‘) в строке s и возвращает их количество.

Использование цикла for

Если вы не хотите использовать встроенные методы, можно использовать цикл for для прохода по всем символам строки и подсчета пробелов.

s = "Пример строки с несколькими пробелами." spaces = 0 for char in s: if char == ' ': spaces += 1 print(spaces) #4

В этом примере мы проходим через каждый символ в строке s , и каждый раз, когда встречаем пробел, увеличиваем счетчик spaces .

Использование генераторов списков

Генераторы списков — это удобный инструмент Python, который позволяет создавать списки на лету. Они могут быть использованы для подсчета пробелов в строке.

s = "Пример строки с несколькими пробелами." spaces = sum([1 for char in s if char == ' ']) print(spaces) #4

Здесь генератор списка создает список, содержащий 1 для каждого пробела в строке. Функция sum() затем суммирует все единицы в списке, что дает общее количество пробелов.

Использование метода split()

Еще один способ подсчета пробелов в строке — использование метода split() . Этот метод разбивает строку на подстроки, используя пробелы в качестве разделителей, и возвращает список этих подстрок.

s = "Пример строки с несколькими пробелами." spaces = len(s.split()) - 1 print(spaces) #4

Метод split() возвращает список подстрок, поэтому количество пробелов равно количеству подстрок минус 1.

Заключение

Работа со строками является общей задачей при программировании на Python, и подсчет пробелов в строке — это только одна из многих операций, которые можно выполнить. Python предлагает множество инструментов и методов для эффективной работы со строками, и надеюсь, что примеры в этой статье помогут вам использовать эти инструменты более эффективно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *