Как эффективно фильтровать вычисленные значения в списке Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как эффективно фильтровать вычисленные значения в списке Python?

Сообщение Anonymous »

Синтаксис генератора списков Python упрощает фильтрацию значений внутри генератора. Например:

Код: Выделить всё

result = [x**2 for x in mylist if type(x) is int]
Вернет список квадратов целых чисел в моем списке. Однако что, если тест включает в себя некоторые (дорогостоящие) вычисления и вы хотите отфильтровать результат? Один из вариантов:

Код: Выделить всё

result = [expensive(x) for x in mylist if expensive(x)]
Это приведет к появлению списка не «ложных» значений дорогих(х), однако дорогой() вызывается дважды для каждого х. Существует ли синтаксис понимания, который позволяет вам выполнять этот тест, вызывая дорогой только один раз за x?

Подробнее здесь: https://stackoverflow.com/questions/130 ... prehension
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»