2016-05-08 2 views
0

Мне нужно подсчитать, сколько периодов (точек) появляется в строке.как считать периоды в строке python

, например:

str="hellow.my.word." 

код должен возвращать 3.

Я пытался использовать следующую функцию, но она возвращает длину строки.

num=str.count('.') 

Каков правильный способ?

+0

Другие ответы, которые я видел, как представляется, использовать итерации. Использование итераций не подходит для этой цели. Вместо этого используйте регулярные выражения: 'len (re.findall (" (\.) ", My_string))' – Pouria

ответ

1

Используйте для понимания перебрать строки:

Кроме того, не следует использовать str в качестве имени переменной, это встроенная функция в Python.

string="hellow.my.word." 

sum([char == '.' for char in string]) # Returns 3 

EDIT

Что касается комментария @ niemmi в, по-видимому, это возможно с помощью string.count('symbol'):

string.count('.') # returns 3 

Docs: https://docs.python.org/2/library/string.html#string.count

+0

FWIW, хотя 'str', безусловно, является вызываемым, но на самом деле это не функция. 'str' - это тип (IOW, класс), поэтому, когда вы вызываете его, он создает новый экземпляр строки. –

1

Одним из возможных решений является отфильтровать других символов, чем . и измерить длину полученного lis т:

len([1 for c in string if c == '.']) 
2

Используйте имя переменной, кроме str(str is built-in).

Во-вторых:

string = "hellow.my.word." 
num=string.count('.') # num=3 ...THIS WORKS 
Смежные вопросы