Нет, Вы не мечтали. Python имеет довольно превосходную систему понимания списка, которая позволяет Вам управлять списками довольно изящно, и в зависимости от точно, что Вы хотите выполнить, это может быть сделано несколько путей. В сущности то, что Вы делаете, говорит "Для объекта в списке, если criteria.matches", и от которого можно просто выполнить итерации через результаты или вывести результаты в новый список.
я собираюсь запереть пример от Погружение В Python здесь, потому что это довольно изящно, и они более умны, чем я. Здесь они получают список файлов в каталоге, затем фильтруя список для всех файлов, которые соответствуют регулярному выражению критерии.
files = os.listdir(path) test = re.compile("test\.py$", re.IGNORECASE) files = [f for f in files if test.search(f)]
Вы могли сделать это без регулярных выражений, для Вашего примера, для чего-либо, где Ваше выражение в конце возвращает true для соответствия. Существуют другие опции как использование фильтра () функция, но если бы я собирался выбрать, я пошел бы с этим.
Eric Sipple
Вычисляемый столбец должен возвращать значение, а вы просто выполняете сравнение. Попробуйте вместо этого:
case when label is null then 0 else 1 end
SQL Server не распознает это как столбец, не допускающий NULL. Чтобы справиться с этим, измените вычисление на:
isnull(case when label IS NULL then 0 else 1 end, 0)