Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでのランレングスエンコーディング


このチュートリアルでは、Pythonでランレングスエンコーディングを作成する方法を学習します。文字列を指定すると、文字と頻度を含む新しい文字列が返されます。

たとえば、文字列 tutorialspoint t3u1o2r1i2a1l1s1p1n1としてエンコードされます 。順序はすべての文字+頻度です 。それらすべてに参加して戻ります。プログラムを作成するには、以下の手順を参照してください。

  • run_length_encodingという名前で関数を記述します。

  • OrderedDictを使用して辞書を初期化します 文字の初期カウントを0として取得します。

  • 文字列のすべての文字を繰り返し処理し、辞書のカウントをインクリメントします。

  • すべての文字とその頻度を結合します。そしてそれを印刷します。

  • 文字列を初期化し、関数を呼び出します。

上記のテキストのコードを見てみましょう。

# importing the collections
import collections
# function
def run_length_encoding(string):
   # initialzing the count dict
   count_dict = collections.OrderedDict.fromkeys(string, 0)
   # iterating over the string
   for char in string:
      # incrementing the frequency
      count_dict[char] += 1
   # initializing the empty encoded string
   encoded_string = ""
   # joining all the chars and their frequencies
   for key, value in count_dict.items():
      # joining
      encoded_string += key + str(value)
      # printing the encoded string
print(encoded_string)
# initializing the strings
string = "tutorialspoint"
# invoking the function
run_length_encoding(string)
# another string
string = "aaaaaabbbbbccccccczzzzzz"
run_length_encoding(string)

出力

上記のコードを実行すると、次の出力が得られます。

t3u1o2r1i2a1l1s1p1n1
a6b5c7z6

結論

チュートリアルで疑問がある場合は、コメントセクションでそれらについて言及してください。


  1. 文字列に偶数の長さの単語を出力するPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 文字列を指定すると、文字列内のすべての単語を均等な長さで表示する必要があります。 アプローチ split()関数を使用して入力文字列を分割します。 forを使用して文字列の単語を繰り返し処理します ループ& len()を使用して単語の長さを計算します 機能。 長さが均等であると評価されると、単語が画面に表示されます。 それ以外の場合、画面に単語は表示されません。 次に、以下の実装を見てみましょう- 例 def printWords(s): # split

  2. Pythonで文字列の長さを取得するにはどうすればよいですか?

    Pythonには、複合オブジェクトの長さを指定するlen()というメソッドがあります。文字列の長さを取得するには、文字列をlen()呼び出しに渡すだけです。たとえば、 print(len('abcdefghijklmnopqrstuvwxyz')) 出力 26