Muszę znaleźć średnią listę w Pythonie. To do tej pory mój kod l = [15, 18, 2, 36, 12, 78, 5, 6, 9] print reduce(lambda x, y: x + y, l) Mam go, więc sumuje wartości na liście, ale nie wiem, jak je podzielić?
Powiedzmy, że chcę sumować a.xdla każdego elementu arr. arr = [{x:1},{x:2},{x:4}] arr.reduce(function(a,b){return a.x + b.x}) >> NaN Mam powody sądzić, że topór jest w pewnym momencie niezdefiniowany. Następujące działa dobrze arr = [1,2,4] arr.reduce(function(a,b){return a + b}) >> 7 Co robię źle w pierwszym przykładzie?
Kiedy należy używać reduceLeft, reduceRight, foldLeft, foldRight, scanLeftlub scanRight? Chcę intuicji / przeglądu ich różnic - być może z kilkoma prostymi przykładami.
Używam Python 3.2. Próbowałem tego: xor = lambda x,y: (x+y)%2 l = reduce(xor, [1,2,3,4]) I wystąpił następujący błąd: l = reduce(xor, [1,2,3,4]) NameError: name 'reduce' is not defined Próbowałem wydrukować reducena interaktywnej konsoli - otrzymałem ten błąd: NameError: name 'reduce' is not defined Czy reducenaprawdę jest usunięty w Pythonie 3.2? …
Istnieje ładna metoda Array, która reduce()pozwala uzyskać jedną wartość z tablicy. Przykład: [0,1,2,3,4].reduce(function(previousValue, currentValue, index, array){ return previousValue + currentValue; }); Jaki jest najlepszy sposób na osiągnięcie tego samego w przypadku przedmiotów? Chciałbym to zrobić: { a: {value:1}, b: {value:2}, c: {value:3} }.reduce(function(previous, current, index, array){ return previous.value + current.value; …
Czy istnieje sposób na map/ reduce/ filter/ etc a Setw JavaScript, czy będę musiał napisać własny? Oto kilka rozsądnych Set.prototyperozszerzeń Set.prototype.map = function map(f) { var newSet = new Set(); for (var v of this.values()) newSet.add(f(v)); return newSet; }; Set.prototype.reduce = function(f,initial) { var result = initial; for (var v …
Próbuje dowiedzieć się F #, ale irytować, gdy próbuje odróżnić krotnie i zmniejszyć . Fold wydaje się robić to samo, ale ma dodatkowy parametr. Czy istnieje uzasadniony powód, dla którego te dwie funkcje istnieją, czy też mają one służyć osobom z różnych środowisk? (Np .: ciąg i ciąg w C …
Jaki jest najbardziej idiomatyczny sposób osiągnięcia czegoś takiego w Haskellu: foldl (+) 0 [1,2,3,4,5] --> 15 Lub jego odpowiednik w Rubim: [1,2,3,4,5].inject(0) {|m,x| m + x} #> 15 Oczywiście Python udostępnia reducefunkcję, która jest implementacją fold, dokładnie tak, jak powyżej, jednak powiedziano mi, że „pythonowym” sposobem programowania jest unikanie lambdaterminów …
Widziałem, że zostały tutaj razem udokumentowane . Czy są tym samym? Dlaczego Ruby ma tak wiele aliasów (takich jak map / collect dla tablic)? Wielkie dzięki.
Jak mogę przerwać iterację reduce()metody? for: for (var i = Things.length - 1; i >= 0; i--) { if(Things[i] <= 0){ break; } }; reduce() Things.reduce(function(memo, current){ if(current <= 0){ //break ??? //return; <-- this will return undefined to memo, which is not what I want } }, 0)
Znalazłem w próbkach Linq MSDN zgrabną metodę o nazwie Fold (), której chcę użyć. Ich przykład: double[] doubles = { 1.7, 2.3, 1.9, 4.1, 2.9 }; double product = doubles.Fold((runningProduct, nextFactor) => runningProduct * nextFactor); Niestety, nie mogę tego skompilować, ani w ich przykładzie, ani we własnym kodzie i nie …
Użyłem obu metod, ale jestem dość zdezorientowany, jeśli chodzi o użycie obu metod. Czy jest coś, co mapmoże, ale reducenie może, i odwrotnie? Uwaga: Wiem, jak używać obu metod, które kwestionuję, aby określić główną różnicę między tymi metodami i kiedy musimy ich użyć.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.