Pythonを使用して文字列からすべての重複文字を検索する
1つの文字列が与えられます。私たちのタスクは、指定された文字列内で頻度が複数の文字を見つけることです。
例として、「HelloWorld」という文字列を見ることができます。 Pythonを学びましょう」と言うと、アルゴリズムは複数回出現する文字を検出します。この場合、出力は次のようになります-
e : 3 l : 4 o , 3) <space> : 4 r : 2 t : 2 n : 2
この問題を実装するために、Pythonコレクションを使用しています。コレクションから、Counter()メソッドを取得できます。 Counter()メソッドは、ハッシュテーブルオブジェクトをカウントするために使用されます。この場合、文字をテキストから分離し、各文字を辞書のキーとして作成します。文字数はそれらのキーの値です。
アルゴリズム
Step 1: Find the key-value pair from the string, where each character is key and character counts are the values. Step 2: For each key, check whether the value is greater than one or not. Step 3: If it is greater than one then, it is duplicate, so mark it. Otherwise, ignore the character
サンプルコード
from collections import Counter defcalc_char_freq(string): freq_count = Counter(string) # get dictionary with letters as key and frequency as value for key in freq_count.keys(): if freq_count.get(key) > 1: # for all different keys, list the letters and frequencies print("(" + key + ", " + str(freq_count.get(key)) + ")") myStr = 'Hello World. Let’s learn Python' calc_char_freq(myStr)
出力
(e, 3) (l, 4) (o, 3) ( , 4) (r, 2) (t, 2) (n, 2)
-
Pythonで文字列からすべての特殊文字、句読点、スペースを削除するにはどうすればよいですか?
文字列からすべての特殊文字、句読点、スペースを削除するには、文字列を繰り返し処理し、英数字以外のすべての文字を除外します。例: >>> string = "Hello $#! People Whitespace 7331" >>> ''.join(e for e in string if e.isalnum()) 'HelloPeopleWhitespace7331' 正規表現を使用して、英数字以外の文字を削除することもできます。 re.sub(regex、string_to_replace
-
Pythonを使用して文字列から文字を削除するにはどうすればよいですか?
文字列から特定のインデックスの文字を削除する場合は、文字列スライスを使用して、その文字を含まない文字列を作成できます。たとえば、 >>> s = "Hello World" >>> s[:4] + s[5:] "Hell World" ただし、文字または文字のリストのすべての出現を削除する場合は、次の方法を使用できます。 文字列クラスには、文字列内のサブ文字列を置き換えるために使用できるメソッドreplaceがあります。このメソッドを使用して、削除する文字を空の文字列に置き換えることができます。例: >>