Скажем, у меня есть словарь следующим образом:синтаксический сахар для нескольких словарных поисков в одной операции
example_dict = {"foo": 1, "bar": 2}
И я хочу сделать несколько подстановочных семантически эквивалентно:
foo = example_dict["foo"]
bar = example_dict["bar"]
Есть ли способ делать несколько поисков одновременно? Ближайший у меня использует список понимание или выражение генератора, как:
foo, bar = [example_dict[key] for key in ["foo", "bar"]]
foo, bar = (example_dict[key] for key in ["foo", "bar"])
В идеале я хотел бы сделать что-то вроде:
foo, bar = example_dict.getmany(["foo", "bar"])
Или даже:
foo, bar = example_dict["foo", "bar"]
аналогичным образом к тому, что вы могли бы сделать со списком или кортежем:
foo, bar = "foo", "bar"
Очевидно, что я мог бы определить свою собственную функцию, выполнив это, возвращая приведенное выше понимание или генератор списка. Или я мог бы создать свой собственный класс словаря, который, если задан для итерации для поиска, выполняет поиск по ключу и возвращает итерабельность. В других структурах данных (т. Е. Не в хэше) поиск нескольких клавиш сразу кажется, что он теоретически может обеспечить лучшую производительность, чем многие индивидуальные поисковые запросы. Есть какой-либо способ сделать это?
Неа. Для этого нет встроенной операции. –
Похоже, вам нужно что-то более сильное, чем словарь (возможно, база данных)? – yuvi
@yuvi уверен, что в некоторых ситуациях, когда усилия по кодированию оправданы, но встроенная функция языка была бы хорошим местом для усилий -выходная кривая. Я надеялся, что там был темный угол питона, который мне не хватало. –