Разное

Посчитать количество символов в строке: Посчитать количество символов, слов и печатных знаков в тексте!

18.05.1996

Содержание

Подсчет вхождений символа в строке в Python

  1. Используйте функцию count() для подсчета количества символов, встречающихся в строке в Python
  2. Используйте collections.Counter для подсчета вхождений символа в строку в Python
  3. Использование регулярных выражений для подсчета вхождений символа в строку в Python
  4. Используйте defaultdict для подсчета вхождений символа в строку в Python
  5. Используйте pandas.value_counts() для подсчета вхождений символа в строку в Python
  6. Используйте lambda выражение для подсчета вхождений символа в строку в Python
  7. Используйте цикл for для подсчета вхождений символа в строку в Python

В программировании строка — это последовательность символов.

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

Используйте функцию

count() для подсчета количества символов, встречающихся в строке в Python

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

Например,

print('Mary had a little lamb'.count('a'))

Выход:

4

Помните, что верхний и нижний регистры считаются разными символами. A и a будут рассматриваться как разные символы и иметь разные значения.

Используйте

collections.Counter для подсчета вхождений символа в строку в Python

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

Например,

from collections import Counter
my_str = "Mary had a little lamb"
counter = Counter(my_str)
print(counter['a'])

Выход:

4

Это лучший выбор при подсчете большого количества букв, поскольку счетчик вычисляет все значения за один раз. Это намного быстрее, чем функция count().

Использование регулярных выражений для подсчета вхождений символа в строку в Python

Регулярное выражение — это специальный синтаксис, содержащийся в шаблоне, который помогает находить строки или набор строк, сопоставляя этот шаблон. Импортируем модуль re для работы с регулярными выражениями.

Мы можем использовать функцию findall() для нашей задачи.

Например,

import re
my_string = "Mary had a little lamb"
print(len(re.findall("a", my_string)))

Выход:

4

Используйте

defaultdict для подсчета вхождений символа в строку в Python

Defaultdict присутствует в модуле collections и является производным от класса словаря. Его функциональность примерно такая же, как у словарей, за исключением того, что он никогда не вызывает KeyError, так как предоставляет значение по умолчанию для ключа, который никогда не существует.

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

from collections import defaultdict

text = 'Mary had a little lamb'
chars = defaultdict(int)

for char in text:
    chars[char] += 1
    
print(chars['a'])
print(chars['t'])
print(chars['w']) # element not present in the string, hence print 0

Выход:

4
2
0

Используйте

pandas.value_counts() для подсчета вхождений символа в строку в Python

Мы можем использовать метод pandas.value_counts(), чтобы получить вхождения всех символов, присутствующих в предоставленной строке. Нам нужно передать строку как объект

Series.

Например,

import pandas as pd
phrase = "Mary had a little lamb"
print(pd.Series(list(phrase)).value_counts())

Выход:

     4
a    4
l    3
t    2
e    1
b    1
h    1
r    1
y    1
M    1
m    1
i    1
d    1
dtype: int64

Возвращает вхождения всех символов в объекте Series.

Используйте

lambda выражение для подсчета вхождений символа в строку в Python

Функции lambda могут не только подсчитывать вхождения из данной строки, но также могут работать, когда у нас есть строка, как список подстрок.

См. Следующий код.

sentence = ['M', 'ar', 'y', 'had', 'a', 'little', 'l', 'am', 'b']
print(sum(map(lambda x : 1 if 'a' in x else 0, sentence)))

Выход:

4

Используйте цикл

for для подсчета вхождений символа в строку в Python

Мы перебираем строку, и если элемент равен желаемому символу, переменная count увеличивается до тех пор, пока мы не дойдем до конца строки.

Например,

sentence = 'Mary had a little lamb'    
count = 0
for i in sentence:
    if i == "a":
        count = count + 1
print(count)

Выход:

4

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

my_string = "Mary had a little lamb"
print(sum(char == 'a' for char in my_string))

Выход:

4
  • Python проверяет, содержит ли список строку
  • Как прочитать один файл строка за строкой к списку на Python
  • Подсчет количества слов в строке

    Описание переменных:

    str — строка;
    len — длина строки;
    count — счетчик слов в строке.

    Алгоритм решения задачи:

    1. Измеряем длину введенной пользователем строки.
    2. Устанавливаем счетчик слов в значение 0.
    3. В цикле посимвольно перебираем строку. Если очередной символ является пробелом, увеличиваем счетчик слов.
    4. Поскольку в цикле не было учтено последнее слово (после него нет пробела), мы должны после цикла увеличить счетчик слов на единицу. Однако, если была введена пустая строка, то этого делать не надо. Поэтому перед увеличением счетчика добавляем проверку, что длина строки больше нуля.

    Программа на языке Паскаль:

    var
        str: string;
        len, count, i: integer;
     
    begin
        readln(str);
        len := length(str); 
        count := 0;
     
        for i := 0 to len do
            if str[i] = ' ' then
                count := count + 1;
        if len > 0 then 
            count := count + 1;
     
        writeln(count);
    end.

    Пример выполнения:

    Примечание. Программа не будет корректно работать, если слова разделены больше, чем одним пробелом.

    Второй вариант задачи: подсчитать количество слов в строке и вывести длину каждого слова

    .

    var
        str, s: string;
        arr: array[1..255] of string;
        n,i,l: byte;
    begin
        readln(str);
        l := length(str);
        n := 0;
        s := '';
        for i:=1 to l do 
            if ((str[i] = ' ') or (i = l)) and (s <> '') then begin
                n := n + 1;
                if (i = l) and (str[i] <> ' ') then s := s + str[i];
                arr[n] := s;
                s := '';
            end
            else
                if str[i] <> ' ' then
                    s := s + str[i];
        writeln(n);
        for i:=1 to n do 
            writeln(arr[i],' - ', length(arr[i]));
    end.

    Пример выполнения программы:

      one two     three   
    3
    one - 3
    two - 3
    three - 5

    Третий вариант задачи: Подсчитать количество слов в строке и вывести все слова в столбик.

    var
        s, w: string;
        l,i: byte;
        count: byte;
    begin
        readln(s);
        l := length(s);
        w := '';
        count := 0;
        for i:=1 to l do
            if s[i] <> ' ' then w := w + s[i]
            else
                if w <> '' then begin
                    writeln(w);
                    w := '';
                    count := count + 1;
                end;
        if w <> '' then begin // последнее слово после которого нет пробела
            writeln(w); 
            count := count + 1;
        end;
        writeln(count);    
    end.

    Python — количество символов в текстовом файле

    Автор оригинала: Python Examples.

    Python – Количество персонажей

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

    Шаги для подсчета количества символов

    Чтобы подсчитать количество символов в текстовом файле, выполните следующие действия.

    1. Откройте файл в режиме чтения
    2. Прочитайте текст, используя функцию READ ().
    3. Получите длину строки, которая должна быть количество символов в текстовом файле.
    4. Вы можете уточнить количество, очищая строку, как удаление персонажей белого пространства и знаков препинания.

    Пример 1. Считайте символы в текстовом файле

    В этом примере Python мы будем читать текстовый файл и подсчитать количество символов в нем. Рассмотрим следующий текстовый файл.

    Текстовый файл

    Welcome to www.pythonexamples.org. Here, you will find python programs for all general use cases.

    Python Program

    #open file in read mode file = open("C:\data.txt", "r") #read the content of file data = file.read() #get the length of the data number_of_characters = len(data) print('Number of characters in text file :', number_of_characters)

    Выход

    Number of characters in text file : 97

    Пример 2: Считайте символы в текстовом файле, исключая пробелы

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

    Текстовый файл

    Welcome to www.pythonexamples.org. Here, you will find python programs for all general use cases.

    Python Program

    #open file in read mode
    file = open("C:\data.txt", "r")
    
    #read the content of file and replace spaces with nothing
    data = file.read().replace(" ","")
    
    #get the length of the data
    number_of_characters = len(data)
    
    print('Number of characters in text file :', number_of_characters)

    Выход

    Number of characters in text file : 84

    Резюме

    В этом руководстве примеров Python мы узнали, как сосчитать количество символов в текстовом файле, с помощью примеров программ.

    Похожие учебники

    • Python – Количество слов в текстовом файле
    • Python – количество вхождений слова в текстовом файле

    Как я могу подсчитать количество символов в переменной Bash



    Как я могу подсчитать все символы в переменной bash? Например, если бы я

    "stackoverflow"
    

    результат должен быть

    "13"
    
    linux bash
    Поделиться Источник lacrosse1991     24 марта 2013 в 07:35

    5 ответов


    • Как я могу подсчитать количество байтов в двоичном файле в Bash?

      В Bash я могу подсчитать количество байтов в текстовом файле, подобном этому: cat textfile.txt | wc -c Однако я не могу cat содержимое двоичного файла, например, файла изображения PNG bitmap, для стандартного ввода. Как я могу подсчитать количество байтов в файле изображения bitmap? Я бы предпочел…

    • Как я могу подсчитать количество не буквенно-цифровых символов в объекте NSString?

      Я погружаюсь в разработку iOS и все еще знакомлюсь с объектом NSString. Я нахожусь в точке, где мне нужно подсчитать количество не буквенно-цифровых символов в строке. Один из подходов, который я придумал, состоял в том, чтобы удалить не буквенно-цифровые символы из строки, а затем вычесть длину…


    Поделиться SteveP     24 марта 2013 в 07:43



    61

    Используйте утилиту wc с опцией print the byte counts ( -c ) :

    $ SO="stackoverflow"
    $ echo -n "$SO" | wc -c
        13
    

    Вам придется использовать опцию не выводить новую строку trailing ( -n ) для echo . В противном случае символ новой строки также будет засчитан.

    Поделиться mihai     11 марта 2015 в 13:21


    Поделиться Raj     24 марта 2013 в 07:51



    13

    ${#str_var}  
    

    где str_var -ваша строка.

    Поделиться aga     24 марта 2013 в 07:41



    2

    вы можете использовать wc для подсчета количества символов в файле wc-m filename.txt. Надеюсь, это поможет.

    Поделиться Norbert Wupona     03 октября 2017 в 10:18


    Похожие вопросы:


    Как я могу подсчитать количество символов, которые печатаются в качестве выходных данных?

    Кто-нибудь знает, как я могу печатать и подсчитывать количество символов, которые я напечатал? Допустим, у меня есть номер, который я печатаю через printf или cout . Как я могу подсчитать…


    Как я могу подсчитать количество символов в строке UTF-8 в Perl?

    У меня есть строка, которая содержит как английские, так и русские символы. Как я могу подсчитать количество символов в Perl?


    Как подсчитать количество прописных символов в NSString?

    Я пытаюсь найти лучший способ подсчитать количество прописных символов, которые находятся в NSString. Я знаю, как узнать, является ли определенный символ прописным, используя этот код: NSString *s =…


    Как я могу подсчитать количество байтов в двоичном файле в Bash?

    В Bash я могу подсчитать количество байтов в текстовом файле, подобном этому: cat textfile.txt | wc -c Однако я не могу cat содержимое двоичного файла, например, файла изображения PNG bitmap, для…


    Как я могу подсчитать количество не буквенно-цифровых символов в объекте NSString?

    Я погружаюсь в разработку iOS и все еще знакомлюсь с объектом NSString. Я нахожусь в точке, где мне нужно подсчитать количество не буквенно-цифровых символов в строке. Один из подходов, который я…


    Как подсчитать количество цифр/букв в файле?

    Я пытаюсь подсчитать количество цифр и букв в моем файле в Bash. Я знаю, что могу использовать wc -c file для подсчета количества символов, но как я могу исправить это только на буквы и, во-вторых,…


    Как оптимально подсчитать количество символов textarea?

    Мне нужно подсчитать количество таких значений textarea. Этот textarea может содержать 5000 символов. Но мне просто нужно знать, является ли количество этих символов больше 20 символов или нет. Я…


    Как посчитать количество символов в первой строке строки?

    Я знаю, как подсчитать длину строки в bash: var1=$’Title\n\nsome text some text some text some text’ echo $var1 length=${#var1} echo Length: $length Я также знаю, как подсчитать количество символов…


    Как я могу удалить несколько символов в моем скрипте bash?

    Я хочу создать скрипт bash на Linux, который будет сообщать мне только мой ip-адрес, сетевую маску и широковещательную передачу. Однако сейчас он показывает больше, чем это, поэтому я хотел бы…


    Как я могу посчитать количество строк в переменной bash, уважая пустоту?

    Мы знаем, как подсчитать количество строк в переменной . Однако, как отмечалось в комментариях и ответах там, семантика причудлива, когда речь заходит о пустых переменных, поскольку пустая…

    Как узнать количество символов в строке?

    Вы можете попробовать RuneCountInStringиз пакета utf8.

    возвращает количество рун в р

    что, как показано в этом сценарии : длина «Мира» может быть 6 (если написано по-китайски: «世界»), но число рун равно 2:

    package main
    
    import "fmt"
    import "unicode/utf8"
    
    func main() {
        fmt.Println("Hello, 世界", len("世界"), utf8.RuneCountInString("世界"))
    }
    

    Фрозен добавляет в комментарии :

    На самом деле вы можете делать len()руны, просто набирая тип.
    len([]rune("世界"))напечатает 2. По латы в Go 1.3.


    И с CL 108985 (май 2018, для Go 1.11), len([]rune(string))теперь оптимизирован. ( Исправляет проблему 24923 )

    Компилятор len([]rune(string))автоматически обнаруживает шаблон и заменяет его на вызов r: = range s.

    Добавляет новую функцию времени выполнения для подсчета рун в строке. Модифицирует компилятор для обнаружения шаблона len([]rune(string)) и заменяет его новой функцией времени выполнения подсчета рун.

    RuneCount/lenruneslice/ASCII                  27.8ns ± 2%  14.5ns ± 3%  -47.70%  (p=0.000 n=10+10)
    RuneCount/lenruneslice/Japanese                126ns ± 2%    60ns ± 2%  -52.03%  (p=0.000 n=10+10)
    RuneCount/lenruneslice/MixedLength             104ns ± 2%    50ns ± 1%  -51.71%  (p=0.000 n=10+9)
    

    Стефан Штайгер указывает на сообщение в блоге « Нормализация текста в Go »

    Что такое персонаж?

    Как было упомянуто в посте блога , символы могут охватывать несколько рун .
    Например, ‘ e‘ и ‘◌́◌́’ (острый «\ u0301») могут объединиться, чтобы сформировать «é» (» e\u0301» в NFD). Вместе эти две руны — один персонаж .

    Определение символа может варьироваться в зависимости от приложения.
    Для нормализации мы определим это как:

    • последовательность рун, которая начинается со стартера,
    • руна, которая не изменяет и не комбинирует в обратном направлении с любой другой руной,
    • сопровождаемый возможно пустой последовательностью не начальных символов, то есть рун, которые делают (обычно акценты).

    Алгоритм нормализации обрабатывает один символ за раз.

    Используя этот пакет и его Iterтип , фактическое количество символов будет:

    package main
    
    import "fmt"
    import "golang.org/x/text/unicode/norm"
    
    func main() {
        var ia norm.Iter
        ia.InitString(norm.NFKD, "école")
        nc := 0
        for !ia.Done() {
            nc = nc + 1
            ia.Next()
        }
        fmt.Printf("Number of chars: %d\n", nc)
    }

    Здесь используется форма нормализации Unicode NFKD «Декомпозиция совместимости»


    Oliver «s ответ указывает на UNICODE TEXT СЕГМЕНТАЦИИ как единственный способ надежно определить границы по умолчанию между некоторыми значительными элементами текста: пользовательские воспринимаемых символов, слов и фраз.

    Для этого вам нужна внешняя библиотека, такая как rivo / uniseg , которая выполняет Unicode Text Segmentation .

    Это фактически будет считать « кластер графем », где несколько кодовых точек могут быть объединены в один воспринимаемый пользователем символ.

    package uniseg
    
    import (
        "fmt"
    
        "github.com/rivo/uniseg"
    )
    
    func main() {
        gr := uniseg.NewGraphemes("👍🏼!")
        for gr.Next() {
            fmt.Printf("%x ", gr.Runes())
        }
        // Output: [1f44d 1f3fc] [21]
    }

    Две графемы, хотя есть три руны (кодовые точки Unicode).

    Вы можете увидеть другие примеры в » Как манипулировать строками в GO, чтобы обратить их вспять? «

    👩🏾‍🦰 только одна графема, но, от юникода до конвертора кодовых точек , 4 руны:

    Как посчитать количество символов в ячейке excel

    Для начала скажу, что я зарабатываю через вот этого брокера