あなたが望むものをクリアしていないが - サブセット、またはサブセットの値である一覧表示するには?また、あなたはzipを必要としません - dict
は順序を明確にすることができない限り(並べ替えを試みています)、2つのdictに同じ番号と同じ名前のキーがない場合は失敗するでしょう。それは次のようにそれを行うには非常に簡単です:
exp = dict(itemA=['valA1','valA2'],itemB=['valB',['valBA','valBB']],itemC=['valC1','valC2'])
res = dict(itemA='valA1',itemB='valBA',itemC='valC1')
subsets = [k for k, v in res.items() if v in exp.get(k, {})]
# ['itemC', 'itemA']
subset_values = [v for k, v in res.items() if v in exp.get(k, {})]
# ['valA1', 'valC1']
# to check if all subsets exist
all_subsets = all(v in exp.get(k, {}) for k, v in res.items())
# False
あなたは、サブサブレベルを想定し、二つのレベルをチェックする必要がある場合として、リストである、あなたはそれを行うことができます:あなたが開始した場合、それが役立つだろう
subsets = []
for group, value in res.items():
for subgroup in exp.get(group, []):
if value == subgroup or (isinstance(subgroup, list) and value in subgroup):
subsets.append(group) # or append value if you're after that
break
# ['itemA', 'itemB', 'itemC']
# or to check if all matched:
all_subsets = len(subsets) == len(exp)
# True
有効なPython構文を使っています....あなたはどこで 'dict'構文を思いついたのですか? – CoryKramer
https://docs.python.org/3/library/stdtypes.html#dict辞書辞書を作成するのにdictを使用する – jacobcan118