PYTHON count_chars

is this article helpful?
|
Python replacement for PHP's count_chars [ edit | history ]
It is not pretty, but it is compatible!
from collections import Counter

def count_chars (s, mode = 0):
    """Counts the number of occurrences of every byte-value (0..255) in string
    and returns it in various ways.
    
    0 - an array with the byte-value as key and the frequency of every byte as value.
    1 - same as 0 but only byte-values with a frequency greater than zero are listed.
    2 - same as 0 but only byte-values with a frequency equal to zero are listed.
    3 - a string containing all unique characters is returned.
    4 - a string containing all not used characters is returned.
    """
    temp = {chr (_x) : 0 for _x in xrange (256)} # All ASCII Characters


    if mode == 0:
        temp.update (Counter (s))
        return temp
    elif mode == 1:
        temp.update (Counter (s))
        res = temp.copy ()
        for i, j in temp.iteritems ():
            if not j:
                res.pop (i)
        return res
    elif mode == 2:
        temp.update (Counter (s))
        res = temp.copy ()
        for i, j in temp.iteritems ():
            if j:
                res.pop (i)
        return res
    elif mode == 3:
        res = ""
        temp.update (Counter (s))
        for i, j in temp.iteritems ():
            if j:
                res +=  i
        return res
    elif mode == 4:
        res = ""
        temp.update (Counter (s))
        for i, j in temp.iteritems ():
            if not j:
                res +=  i
        return res
    else:
        raise ValueError ("Incorrect value of mode (%d)" % (mode,))

PHP count_chars

PHP original manual for count_chars [ show | php.net ]

count_chars

(PHP 4, PHP 5)

count_charsReturn information about characters used in a string

Description

mixed count_chars ( string $string [, int $mode= 0 ] )

Counts the number of occurrences of every byte-value (0..255) in string and returns it in various ways.

Parameters

string

The examined string.

mode

The optional parameter mode defaults to 0.

Return Values

Depending on mode count_chars() returns one of the following:

  • 0 - an array with the byte-value as key and the frequency of every byte as value.
  • 1 - same as 0 but only byte-values with a frequency greater than zero are listed.
  • 2 - same as 0 but only byte-values with a frequency equal to zero are listed.
  • 3 - a string containing all unique characters is returned.
  • 4 - a string containing all not used characters is returned.

Examples

Example #1 count_chars() example

<?php
$data 
"Two Ts and one F.";

foreach (
count_chars($data1) as $i => $val) {
   echo 
"There were $val instance(s) of \"" chr($i) , "\" in the string.\n";
}
?>

The above example will output:

There were 4 instance(s) of " " in the string.
There were 1 instance(s) of "." in the string.
There were 1 instance(s) of "F" in the string.
There were 2 instance(s) of "T" in the string.
There were 1 instance(s) of "a" in the string.
There were 1 instance(s) of "d" in the string.
There were 1 instance(s) of "e" in the string.
There were 2 instance(s) of "n" in the string.
There were 2 instance(s) of "o" in the string.
There were 1 instance(s) of "s" in the string.
There were 1 instance(s) of "w" in the string.

See Also

  • strpos() - Find position of first occurrence of a string
  • substr_count() - Count the number of substring occurrences