молодому.
Вопрос теоретический.
Допустим, есть конструкция.
a = Table.AddColumn(tbl, "кто украл корову", each
if [Подозреваемый] <> "Какой-то хрен"
then [Подозреваемый]
else
if [Подозреваемый] = "Какой-то хрен" and [Рост] = "маленький"
then [Предположительное место]
else
if [Подозреваемый] = "Какой-то хрен" and [Рост] = "маленький" and [Предположительное место] = "Малиновка"
then "Васька Косой"
else null)
Смысла в данной конструкции не ищите - я пытался переписать код, удаляя конфиденциальную информацию, параллельно совмещая все с анекдотом. Но суть, думаю, вам ясна. 3 if then els'а - это как-то странно, сложно и можно запутаться. Помимо всего прочего вся эта конструкция будет проходить через каждую строчку из таблицы, тем самым сильно тормозя процесс.
В чем суть вопроса? - можно ли составить словарь в виде записи записей, в котором можно привести все возможные варианты, которые подходят под условие и записать их для сравнения? Чтобы квери быстро бросал взгляд на строку, проверял значения из словаря, а потом тотчас же присваивал значение относительно того, нашел/не нашел.
Заранее благодарю за ответ!
P.s. Если такая статься есть в анатомии функций - можете, пожалуйста, подсказать ее номер? - Я с радостью пойду разбираться)
3 if then else - наиболее шустрый вариант, это для начала, проверять заново все поля - действительно сложно и избыточно
Извините, я ничего не понял. Речь о том, что елочка из элифов хороша при малом объеме таблицы или как? Просто насколько я понял эта елка применяется к каждой строке в выделенном столбце. И время ее работы будет прямо пропорционально количеству строк
Что поменяется, когда вы все равно будете тащить три поля из каждой строки с целью свериться со словарем записей? Повторюсь - с точки зрения производительности if then else оптимально
А, это так работает? Я этого не знал. Ладно, спасибо большое, Михаил!
[Подозреваемый] = "Какой-то хрен" во втором и третьем if можно удалить, мы и так идем по ветке else
Обсуждают сегодня