まず、あなたはitertools.chain.from_iterable
で自分の価値観の全てをフラット化することができます
>>> import itertools
>>> my_dict = {'dog':['cat','rat','bird'],'cat':['dog','bird','rat'],'mouse':['fish','fly','horse']}
>>> values = list(itertools.chain.from_iterable(my_dict.values()))
>>> print(values)
['cat', 'rat', 'bird', 'dog', 'bird', 'rat', 'fish', 'fly', 'horse']
または他の方法で:
>>> values = [lst for item in my_dict.values() for lst in item]
>>> print(values)
['cat', 'rat', 'bird', 'dog', 'bird', 'rat', 'fish', 'fly', 'horse']
>>> values = sum(my_dict.values(), [])
>>> print(values)
['cat', 'rat', 'bird', 'dog', 'bird', 'rat', 'fish', 'fly', 'horse']
その後、あなたはその値、および値として存在しないキーを抽出することができます
>>> only_keys = [key for key in my_dict if key not in values]
>>> print(only_keys)
['mouse']
>>> only_values = [value for value in values if value not in my_dict]
>>> print(list(set(only_values)))
>>> ['rat', 'bird', 'fish', 'fly', 'horse']
注:あなたはを適用する必要があり、キーとして存在してはいけません値は辞書に複製することができ、キーはできないので、をonly_values
に設定します。
'Iveはいくつかのことを試しました。 –
ああ、スタックオーバーフローへようこそ! –
ポイント2に記載されている期待通りの結果が得られましたか?例を短縮してもはや適用されませんでしたか?私は対応するキーのない値として 'ラット、鳥、魚、飛ぶ馬 'を見ます。また、キーと値は文字列であるはずですか?その場合は、それらを引用する必要があります。 –