-3

ほぼ同じ 2 つの文字列を比較する必要があります。次に、Python を使用して相違点を見つけます。何か助けはありますか?

たとえば、2 つの文字列 a と b

A = 'oooooSooooooooooooooooooRoMooooooAooooooooooooooo'
B = 'oooooSooooooooooooooooooooMooooooAooooooooooooooo'

ありがとう

4

4 に答える 4

6

difflibすべての標準の python インストールに同梱されている を使用することをお勧めします。そこには、便利な関数 ndiffがあります。

>>> import difflib

>>> print "\n".join(difflib.ndiff([A], [B])),
- oooooSooooooooooooooooooRoMooooooAooooooooooooooo
?                         ^

+ oooooSooooooooooooooooooooMooooooAooooooooooooooo
?                         ^
>>> 
于 2013-09-19T07:35:10.650 に答える
2

同じサイズの文字列の場合、または最短の長さのみが重要な場合:

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)):
于 2013-09-19T08:03:44.833 に答える
1

いくつかのヒント。

文字列の長さ:

print(len(A))

インデックスで個々の文字にアクセスできます。

print(A[0])

整数のシーケンスを生成できる範囲関数があります。

for i in range(10):
    print(i)

2 つの文字が等しいかどうかを確認できます。

 'a' == 'a'
 'a' == 'b'
于 2013-09-19T07:26:58.760 に答える
0

1. 文字列を配列 A[] と B[] の文字に分割します

2.ループ内で各文字を同じ配列インデックスと比較します。

3. ループ内にカウントを入れて 0 ~ (文字列の長さ) のループを繰り返します。

4.コンペア条件が偽になった回数を取る(A[] == B[]がFalseになったとき)

于 2013-09-19T07:27:17.490 に答える