辞書に存在するキーに変数をマージしようとしています。ルールは次のとおりです。
- キーが既に存在する場合は、値カウンターを 1 つ増やします。
- キーへの部分一致が存在する場合: 変数の長さがキーよりも小さいが、re.search が None でない場合、値カウンターを 1 つ増やします b. 変数の長さがキーよりも大きく、re.search が None でない場合、キーを変数に置き換え、カウンターを 1 つ増やします
- この後に変数が存在するが、まだ辞書に一致がない場合は、変数を辞書に追加します
1、2a、2b は達成できましたが、3 を追加する方法がわかりません。ヘルプや提案をいただければ幸いです。現在の形式のスクリプトは次のとおりです。 Dict に "turtle" も表示したいと思います。
Animals = ["phant", "eleph", "tiger", "turtle", "zebra", "ostrich"]
Dict = {"horse":1, "elephant":1, "iger":1, "ostrich":1}
for name in Animals:
if name in Dict:
Dict[name]=Dict[name]+1
else:
for key, val in Dict.items():
if len(name) < len(key):
m = re.search (name, key)
if m != None:
print ("Found match!", name)
Dict[key] = Dict[key] + 1
break
elif len(name) > len(key):
m = re.search (key, name)
if m != None:
print ("Found match!", name)
Dict[name] = Dict.pop(key) + 1
Dict[name] = Dict[name] + 1
break