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

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)

  1. Pythonで文字列からすべての特殊文字、句読点、スペースを削除するにはどうすればよいですか?

    文字列からすべての特殊文字、句読点、スペースを削除するには、文字列を繰り返し処理し、英数字以外のすべての文字を除外します。例: >>> string = "Hello $#! People   Whitespace 7331" >>> ''.join(e for e in string if e.isalnum()) 'HelloPeopleWhitespace7331' 正規表現を使用して、英数字以外の文字を削除することもできます。 re.sub(regex、string_to_replace

  2. Pythonを使用して文字列から文字を削除するにはどうすればよいですか?

    文字列から特定のインデックスの文字を削除する場合は、文字列スライスを使用して、その文字を含まない文字列を作成できます。たとえば、 >>> s = "Hello World" >>> s[:4] + s[5:] "Hell World" ただし、文字または文字のリストのすべての出現を削除する場合は、次の方法を使用できます。 文字列クラスには、文字列内のサブ文字列を置き換えるために使用できるメソッドreplaceがあります。このメソッドを使用して、削除する文字を空の文字列に置き換えることができます。例: >>