Даны два словаря mydict1
и mydict2
. Пары ключ-значение в mydict2
должны быть удалены, если значения уже содержатся в mydict1
, независимо от ключа и порядка значений.
Код ниже обеспечивает правильный вывод mydict2 = {'key6': [2,1,4], 'key4': [2]}
. Однако он будет использоваться как часть более крупного кода. Есть ли лучший, то есть более фитонический способ написать его, чтобы сделать его более компактным и эффективным без необходимости использования функций?
mydict1 = {'key1':[1],'key2':[1,2],'key3':[1,2,3]}
mydict2 = {'key4':[2],'key5':[2,1],'key6':[2,1,4]}
mydict3 = {}
for md2 in mydict2:
isindict = False
for md1 in mydict1:
isindict = isindict|(sorted(mydict1[md1])==sorted(mydict2[md2]))
if not isindict:
mydict3[md2] = mydict2[md2]
mydict2 = mydict3
Решения для удаления элементов из списка, < href="https://stackoverflow.com/questions/1911273/is-there-a-better-way-to-compare-dictionary-values">сравнение словарей и условная фильтрация словаря не может быть передана прямым способом.
mydict1
01.11.2019vals=...
01.11.2019