####やりたいこと
長さが同じ文字列同士の比較で違いが何個あるかを調べる効率的な方法を模索しています。
現状は愚直にfor文でループさせて1文字づつ比較しています。
何か別の方法で比較出来るやり方あればご教示頂ければと思います。
####試したこと
検索したキーワード:文字列 比較 差分 違い
似たような質問の回答からcollectionsやCounterが使えないかと思ったのですが何文字目かの比較が必要なので断念しました。
Python3
1def count_diff(q,a): 2 lst_q = list(q) 3 lst_a = list(a) 4 len_q = len(lst_q) 5 ng = 0 6 for i in range(len_q): 7 if lst_q[i] != lst_a[i]: 8 ng += 1 9 print('NG:',ng,q,a) 10 11q = 'abcdefg' 12a = 'abcdefg' 13b = 'xbcdefg' 14c = 'xbxdxfx' 15 16count_diff(q,a) 17count_diff(q,b) 18count_diff(q,c)
出力結果 NG: 0 abcdefg abcdefg NG: 1 abcdefg xbcdefg NG: 4 abcdefg xbxdxfx
回答頂いたコードの実行速度比較:GitHub

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/01 12:16
2018/10/01 12:32
2018/10/01 12:54