辞書を逆転させる関数を作成しようとしていますが、コードを書き直したり、別の方法を使用したり、各繰り返しでif/elseを避けたりすることなく、それを行う最も無邪気な方法は何ですか?関数のオーバーロードを処理するPythonの方法
def invert_dict(dic, type=None):
if type == 'list':
return _invert_dict_list(dic)
return _invert_dict(dic)
# if there's only one value per key
def _invert_dict(dic):
inverted = defaultdict()
for k,v in dic.items():
for item in v:
inverted[item]=k
return dict(inverted)
# if there are multiple values for the same key
def _invert_dict_list(dic):
inverted = defaultdict(list)
for k,v in dic.items():
for item in v:
inverted[item].append(k)
return dict(inverted)
'_invert_dict()'メソッドの 'for item in v'は、値が' 'hello''の文字列なら、あなたは5つのキー' inverted ['h']、反転['e'] '...など? – pstatix
単純な反転は、 '{v:dic.items()}'の(k、v)のkでより簡単に達成できます。 –
あなたのソリューションは、あなたが望むように機能しますか?あなたの解決策は* un * -pythonですか? – wwii