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

Pythonで文字列が繰り返されるかどうかを確認するにはどうすればよいですか?


私たちが持っている文字列が、この文字列の部分文字列の繰り返しのみで構成されているかどうかを確認したいと思います。文字列の回転が2つの文字列の組み合わせに存在するかどうかを確認できることを確認します。これは、文字列がそれ自体の自明でない回転に等しい場合にのみ、文字列が周期的であるためです。

次のコードはこれをチェックし、それに応じて戻ります:

def find_period(s):
    # Concatenate 2 s and find s within
    # index one to end of the string
    i = (s+s).find(s, 1, -1)
    return None if i == -1 else s[:i]
print find_period('012012012012012')
print find_period('some random string')

出力

これにより、出力が得られます:

012
None

  1. Pythonで不変の文字列のIDを変更するにはどうすればよいですか?

    Pythonの文字列は不変です。つまり、文字列が作成されると、変更することはできません。文字列を作成するとき、同じ文字列を作成して別の変数に割り当てると、両方が同じ文字列/メモリを指します。たとえば、 >>> a = 'hi' >>> b = 'hi' >>> id(a) 43706848L >>> id(b) 43706848L この文字列オブジェクトの再利用は、Pythonではインターンと呼ばれます。同じ文字列は同じIDを持ちます。ただし、Pythonは文字列をインターンすることが保証

  2. Pythonで複数の区切り文字を使用して文字列を分割するにはどうすればよいですか?

    re.split(delimiter、str)メソッドを使用して、複数の区切り文字で文字列を分割できます。区切り文字の正規表現と、分割する必要のある文字列が必要です。例: a='Beautiful, is; better*than\nugly' import re print(re.split('; |, |\*|\n',a)) 出力を取得します ['Beautiful', 'is', 'better', 'than', 'ugly']