позволяет писать нормальный map\reduce или что то в этом роде?
есть, причем так и называется - map\reduce
Я хочу что то типо такого array.filter { test.isBool } Очевидно что это упрощенная конструкция, если делать больше то мне придется писать так def votingAge(givenNumumber): # checking whether the number is greater than or equal to 18 if givenNumumber>=18: # returning number return givenNumumber # input list inputList = [3, 20, 18, 6, 14, 25, 19] # Getting only values of above list which are greater than or equal to 18 result_filterObj = filter(votingAge, inputList)
Лямбды существуют есче
Они не удобные
Что в них неудобного?
Какой троллинг? Map/reduce в пайтоне есть миллиард лет и работает так же как в почти всех фп языках
Помимо этого существуют listcomps/genexprs. Твой нейросетевой пук можно написать куда более наглядно [age for age in input_list if age >= 18]
Короче хуйней ты страдаешь
Ок, тогда как написать такое в питоновском стиле array.compactMap { value -> SomeObject in guard let value else { return nil } SomeObject(manyFields) }
Я в душе не чаю что тут написано. Переведи на человеческий
res = [] for obj in array: if obj != None: res.append(obj)
res = [obj for obj in array if obj != None]
то же самое ведь, неужели громоздская запись сверху означает всего лишь это?
Хорошо, теперь так res = [] for obj in array: if obj != None: age = get_age() someObject = SomeObject( field: 1, field: 2, field: 3 field: 4 age: age ) res.append(someObject)
[SomeObject(1,2, 3, 4, get_age()) for obj in array if obj is not None]
res = [SomeObject(field=1, …, age=get_age()) for obj in array if object != None]
Да, неудобный принцип 1. я не могу поставить бряку и дебажнуть 2. многословность
Чел ты...
по-моему вот это многословность дебагеры проходятся и по этим comprehensions неплохо
Даже легче filter(None, ...)
Обсуждают сегодня