У меня есть входной словарь, я хочу сравнить ключи с другим словарем, и если ключ в словаре поиска будет нажат, я хочу, чтобы он запускал функцию в качестве значения в словаре поиска.
Функция в поисковом словаре вернет пару ключ-значение, которую необходимо «обновить» в новый словарь. Итак, вот пример:
out = {getattr(self,self.LOOKUPDICT[k])({k:query[k]}) for k in query.keys() if k not in self.exclusions}
Результат
getattr(self,self.LOOKUPDICT[k])({k:query[k]})
Словарь, который выглядит так:
{'new_key':'new_val'}
В понимании я получаю
TypeError: unhashable type: 'dict'
Потому что он ожидает пару ключ-значение.
Теперь я могу просто запустить обычный цикл и оператор if, но я стал против них. Любое обходное решение здесь?
TLDR: понимание словаря, как вставить словарь следующим образом:
{{'k':'v'} for k in blahblah}
и сделайте k ключом, а v значением. Обратите внимание, что dict возвращается из функции, которая запускается в выражении.