Мне нужно было сравнить 2 словаря, чтобы найти набор ключей в одном словаре, который не был в другом.Краткий способ найти «ключевую» разницу между 2 словарями?
Я знаю, что Python набор объекты поддерживают:
set3=set1-set2
, но я не могу сделать:
dict3=dict1-dict2
или:
missingKeys=dict1.keys()-dict2.keys()
(я был немного удивлен, по последней точке, потому что в Java ключи являются объектами Set.) Одно из решений:
missingKeys=set(dict1.keys())-set(dict2.keys())
есть ли лучший или более сжатый способ сделать это?
Я думаю, что последняя строка достаточно кратким сам, но ... Я думаю, более интересный вопрос «Как удалить все z из Y из X?» где X и Y - списки. Это было бы полезно, если дублирующие z существуют в X, которые появляются в Y, например, должны быть оставлены в покое. –
@pst: Ну, это немного странно для создания заданных объектов, просто чтобы использовать функцию разности() ... –
С другой стороны, поскольку это * * набор, он может использовать лучшее O ... для различий в списках с помощью понимания легко, но немного более многословно. Тем не менее, такая же производительность, если «проверенный» список преобразуется в 'set'. –