次の作業を行う関数を作成する必要があります
辞書の辞書で文字列を値として検索し、そのキーを返します (メイン辞書にある場合は 1 番目のキー、サブ辞書にある場合は 2 番目のキー)。
ソースコード
ここに私が実装しようとしている関数がありますが、この場合は次のエラーが発生するため、リストを辞書に変換する方法の答えが見つからないため、正しく機能しません
for v, k in l: ValueError: アンパックするには複数の値が必要です
def GetKeyFromDictByValue(self, dictionary, value_to_find):
""""""
key_list = [k for (k, v) in dictionary.items() if v == value_to_find]
if key_list.__len__() is not 0:
return key_list[0]
else:
l = [s for s in dictionary.values() if ":" in str(s)]
d = defaultdict(list)
for v, k in l:
d[k].append(v)
print d
dict = {'a': {'a1': 'a2'}, "aa": "aa1", 'aaa': {'aaa1': 'aaa2'}}
print GetKeyFromDictByValue(dict, "a2")
Python 2.5でこれを行う必要があります