Невозможно превратить эти циклы в понимание словаря - это может быть невозможно.Понимание словаря Python с вложенным значением для
Основная идея заключается в том, что у меня есть словарь исключает, что выглядит следующим образом:
excludes = {
"thing1": ["name", "address"],
"thing2": ["username"]
}
Тогда у меня есть больший словарь, который я хочу «чистой» с помощью исключения
original_dict = {
"thing1": {"name": "John", "address": "123 Anywhere Drive", "occupation": "teacher" },
"thing2": {"username": "bearsfan123", "joined_date": "01/01/2015"},
"thing3": {"pet_name": "Spot"}
}
Если я запускаю следующее:
for k, v in original_dict.iteritems():
if k in excludes.keys():
for key in excludes[k]:
del v[key]
Я оставил с:
original_dict = {
"thing1": {"occupation": "teacher" },
"thing2": {"joined_date": "01/01/2015"},
"thing3": {"pet_name": "Spot"}
}
Это прекрасно, но я не уверен, могу ли я лучше представить это как понимание словаря - просто добавляя ключи, которые я хочу, а не удаляю те, которые у меня нет.
Я получил вниз на второй for
, но я не уверен, как представить, что в
new_dict = {k: v for (k, v) in original_dict.iteritems()}
Это отлично, спасибо. Я думаю, что вы правы, хотя я должен был сначала задать вопрос «должен ли я сделать это в понимании». Мне нравится вариант на основе цикла for, но я могу использовать его вместо этого. – diplosaurus