мне интересно, если есть более емкий метод делает следующее:Предложения по изменению функции в выражении карты
Когда h
, t
, r
являются Numpy массивов, я хочу сделать следующее:
hL, tL, rL = map(lambda m: len(set(m)), [h, t, r])
, который вычисляет количество не повторяющихся элементов в отдельных массивах. Однако выражение лямбда торчит как больной палец. Если бы не повторная вещь не была проблемой, я бы написал:
hL, tL, rL = map(len, [h, t, r])
Который намного круче. Мы полностью отказались от лямбда-выражения. После баловался в Haskell в течение нескольких месяцев, я действительно начинаю верить, что Python должен быть в состоянии предоставить оператору СЦЕПЛЕНИЕ как .
в Haskell так, что первое выражение может быть просто сводится к следующему:
hL, tL, rL = map(len . set, [h, t, r])
Который намного лучше !!
Я видел что-то, что использует метод reduce
для этого, но это просто более уродливо, чем предыдущий метод. Интересно, знает ли кто-нибудь, что они знают об этом, может решить проблему? Я знаю, что есть проблемы с нестрогой оценкой, что может сделать программы неустойчивыми, но когда мы работаем над простыми вещами вроде этого, это не должно быть проблемой?
на самом деле это выглядит лучше. Благодаря! – ssm