ほぼ同じ 2 つの文字列を比較する必要があります。次に、Python を使用して相違点を見つけます。何か助けはありますか?
たとえば、2 つの文字列 a と b
A = 'oooooSooooooooooooooooooRoMooooooAooooooooooooooo'
B = 'oooooSooooooooooooooooooooMooooooAooooooooooooooo'
ありがとう
ほぼ同じ 2 つの文字列を比較する必要があります。次に、Python を使用して相違点を見つけます。何か助けはありますか?
たとえば、2 つの文字列 a と b
A = 'oooooSooooooooooooooooooRoMooooooAooooooooooooooo'
B = 'oooooSooooooooooooooooooooMooooooAooooooooooooooo'
ありがとう
difflib
すべての標準の python インストールに同梱されている を使用することをお勧めします。そこには、便利な関数 ndiffがあります。
>>> import difflib
>>> print "\n".join(difflib.ndiff([A], [B])),
- oooooSooooooooooooooooooRoMooooooAooooooooooooooo
? ^
+ oooooSooooooooooooooooooooMooooooAooooooooooooooo
? ^
>>>
同じサイズの文字列の場合、または最短の長さのみが重要な場合:
def diffindex(string1, string2):
for i, (char1, char2) in enumerate(zip(string1, string2)):
if char1 != char2:
return i
return -1
異なるサイズの文字列の場合:
from itertools import zip_longest
対応する行を次の行に置き換えます。
for i, (char1, char2) in enumerate(zip_longest(string1, string2)):
いくつかのヒント。
文字列の長さ:
print(len(A))
インデックスで個々の文字にアクセスできます。
print(A[0])
整数のシーケンスを生成できる範囲関数があります。
for i in range(10):
print(i)
2 つの文字が等しいかどうかを確認できます。
'a' == 'a'
'a' == 'b'
1. 文字列を配列 A[] と B[] の文字に分割します
2.ループ内で各文字を同じ配列インデックスと比較します。
3. ループ内にカウントを入れて 0 ~ (文字列の長さ) のループを繰り返します。
4.コンペア条件が偽になった回数を取る(A[] == B[]がFalseになったとき)