[解決済み] Pythonで2つの文字列の間のハミング距離
2022-02-11 04:54:26
質問
私はPythonの初心者ですが、2つの文字列の間のハミング距離を求める必要があります。
chaine1 = 6fb17381822a6ca9b02153d031d5d3da
chaine2 = a242eace2c57f7a16e8e872ed2f2287d
XOR関数がうまくいかず、Webで検索してもあまりうまくいかなかった。
Webで見つけたものを改造しようとしたら、無効な構文があるんだけど......。
assert len (chaine1) == len(chaine2)
return sum(chaine1 != chaine2 for chaine1, chaine2 in zip(chaine1, chaine2))
if __name__=="__main__":
chaine1 = hashlib.md5("chaine1".encode()).hexdigest()
chaine2 = hashlib.md5("chaine2".encode()).hexdigest()
print hamming_distance(chaine1, chaine2)
どのように進めればよいか、何かアイデアがあれば教えてください。ありがとうございます。
どのように解決するのですか?
以下は、2種類の方法でハミング距離を計算するプログラムです。
import hashlib
def hamming_distance(chaine1, chaine2):
return sum(c1 != c2 for c1, c2 in zip(chaine1, chaine2))
def hamming_distance2(chaine1, chaine2):
return len(list(filter(lambda x : ord(x[0])^ord(x[1]), zip(chaine1, chaine2))))
if __name__=="__main__":
chaine1 = hashlib.md5("chaine1".encode()).hexdigest()
chaine2 = hashlib.md5("chaine2".encode()).hexdigest()
#chaine1 = "6fb17381822a6ca9b02153d031d5d3da"
#chaine2 = "a242eace2c57f7a16e8e872ed2f2287d"
assert len(chaine1) == len(chaine2)
print(hamming_distance(chaine1, chaine2))
print(hamming_distance2(chaine1, chaine2))
を取得する理由は
Invalid syntax: ...
は、Pythonで必要とされるインデントがないのでしょう。
関連
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] staticmethodとclassmethodの違いについて
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] JavaScriptで複数行の文字列を作成する
-
[解決済み] Pythonで文字列の部分文字列を取得するにはどうすればよいですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
python string splicing.join()とsplitting.split()の説明
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Python カメの描画コマンドとその例
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】NameError: 名前 'self' が定義されていません。
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac