คำถามติดแท็ก reduce

ลดหมายถึงขั้นตอนที่สองในการคำนวณ MapReduce ซึ่งเป็นส่วนประกอบของอัลกอริทึมขนาดใหญ่ที่ปรับขนาดได้แบบขนาน

22
การหาค่าเฉลี่ยของรายการ
ฉันต้องค้นหาค่าเฉลี่ยของรายการใน Python นี่คือรหัสของฉันจนถึงตอนนี้ l = [15, 18, 2, 36, 12, 78, 5, 6, 9] print reduce(lambda x, y: x + y, l) ฉันได้มันมาแล้วมันจะรวมค่าต่าง ๆ ในรายการเข้าด้วยกัน แต่ฉันไม่รู้ว่าจะแบ่งมันเป็นอย่างไร
473 python  list  lambda  average  reduce 

6
วิธีใช้ตัวกรองแผนที่และลดใน Python 3
filter, mapและreduceทำงานอย่างสมบูรณ์ใน Python 2 นี่คือตัวอย่าง: >>> def f(x): return x % 2 != 0 and x % 3 != 0 >>> filter(f, range(2, 25)) [5, 7, 11, 13, 17, 19, 23] >>> def cube(x): return x*x*x >>> map(cube, range(1, 11)) [1, 8, 27, 64, 125, 216, 343, 512, 729, 1000] …

15
Javascript ลดจำนวนอาร์เรย์ของวัตถุ
ว่าผมต้องการที่จะสรุปสำหรับแต่ละองค์ประกอบในa.xarr arr = [{x:1},{x:2},{x:4}] arr.reduce(function(a,b){return a.x + b.x}) >> NaN ฉันเชื่อว่าขวานไม่ได้กำหนดไว้ในบางจุด งานต่อไปนี้ใช้ได้ดี arr = [1,2,4] arr.reduce(function(a,b){return a + b}) >> 7 ฉันทำอะไรผิดในตัวอย่างแรก


4
NameError: ชื่อ 'ลด' ไม่ได้กำหนดไว้ใน Python
ฉันใช้ Python 3.2 พยายามนี้: xor = lambda x,y: (x+y)%2 l = reduce(xor, [1,2,3,4]) และได้รับข้อผิดพลาดดังต่อไปนี้: l = reduce(xor, [1,2,3,4]) NameError: name 'reduce' is not defined พยายามพิมพ์reduceลงในคอนโซลแบบโต้ตอบ - ได้รับข้อผิดพลาดนี้: NameError: name 'reduce' is not defined จะถูกreduceลบออกจริงๆใน Python 3.2? หากเป็นเช่นนั้นจะเป็นทางเลือกอะไร?

13
Javascript ลด () กับ Object
มีวิธี Array ที่ดีในการreduce()รับค่าหนึ่งค่าจาก Array ตัวอย่าง: [0,1,2,3,4].reduce(function(previousValue, currentValue, index, array){ return previousValue + currentValue; }); วิธีที่ดีที่สุดในการบรรลุวัตถุเดียวกันคืออะไร? ฉันต้องการทำสิ่งนี้: { a: {value:1}, b: {value:2}, c: {value:3} }.reduce(function(previous, current, index, array){ return previous.value + current.value; }); อย่างไรก็ตามวัตถุดูเหมือนจะไม่ได้มีreduce()การใช้วิธีการใด ๆ

3
จะแมป / ลด / กรองชุดใน JavaScript ได้อย่างไร?
มีวิธีใดบ้างที่จะmap/ reduce/ filter/ etc a Setใน JavaScript หรือฉันจะต้องเขียนเอง? นี่คือส่วนSet.prototypeขยายที่เหมาะสม 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 of this) result = f(result, v); return result; }; Set.prototype.filter = …

3
ความแตกต่างพื้นฐานระหว่างการพับและลดใน Kotlin คืออะไร? ควรใช้เมื่อใด
ฉันค่อนข้างสับสนกับทั้งสองฟังก์ชั่นนี้fold()และreduce()ใน Kotlin ใครช่วยยกตัวอย่างที่เป็นรูปธรรมที่ทำให้ทั้งสองอย่างเห็นได้ชัด
134 kotlin  reduce  fold 

4
ความแตกต่างระหว่างพับและลด?
พยายามเรียนรู้ F # แต่มีสับสนเมื่อพยายามที่จะแยกแยะความแตกต่างระหว่างการพับและลด การพับดูเหมือนจะทำสิ่งเดียวกันแต่ใช้พารามิเตอร์พิเศษ มีเหตุผลอันชอบธรรมที่ทำให้ฟังก์ชันทั้งสองนี้มีอยู่หรือมีขึ้นเพื่อรองรับผู้ที่มีภูมิหลังที่แตกต่างกัน? (เช่น: สตริงและสตริงใน C #) นี่คือข้อมูลโค้ดที่คัดลอกมาจากตัวอย่าง: let sumAList list = List.reduce (fun acc elem -> acc + elem) list let sumAFoldingList list = List.fold (fun acc elem -> acc + elem) 0 list printfn "Are these two the same? %A " (sumAList [2; 4; 10] …

9
อะไรคือ 'pythonic' เทียบเท่ากับฟังก์ชัน 'fold' จากการเขียนโปรแกรมเชิงฟังก์ชัน
อะไรคือวิธีที่เป็นสำนวนที่สุดในการบรรลุสิ่งต่อไปนี้ใน Haskell: foldl (+) 0 [1,2,3,4,5] --> 15 หรือเทียบเท่าใน Ruby: [1,2,3,4,5].inject(0) {|m,x| m + x} #> 15 เห็นได้ชัดว่า Python มีreduceฟังก์ชันซึ่งเป็นการใช้งานแบบพับตามที่กล่าวข้างต้นอย่างไรก็ตามฉันได้รับแจ้งว่าวิธีการเขียนโปรแกรมแบบ 'pythonic' คือการหลีกเลี่ยงlambdaคำศัพท์และฟังก์ชันลำดับที่สูงกว่าโดยเลือกใช้ความเข้าใจในรายการหากเป็นไปได้ ดังนั้นจึงมีวิธีที่ดีกว่าในการพับรายการหรือโครงสร้างแบบรายการใน Python ที่ไม่ใช่reduceฟังก์ชันหรือเป็นreduceวิธีที่เป็นสำนวนในการบรรลุสิ่งนี้หรือไม่?


4
ความแตกต่างระหว่าง Reduce และ foldLeft / fold ในการเขียนโปรแกรมเชิงฟังก์ชัน (โดยเฉพาะ Scala และ Scala APIs)
ทำไม Scala และเฟรมเวิร์กเช่น Spark และ Scalding จึงมีทั้งสองอย่างreduceและfoldLeft? แล้วอะไรคือความแตกต่างระหว่างreduceและfold?

2
วิธีการต่อ LINQ“ พับ” อยู่ที่ไหน
ฉันพบในตัวอย่าง Linq ของ MSDN ซึ่งเป็นวิธีการที่เรียกว่า Fold () ที่ฉันต้องการใช้ ตัวอย่างของพวกเขา: double[] doubles = { 1.7, 2.3, 1.9, 4.1, 2.9 }; double product = doubles.Fold((runningProduct, nextFactor) => runningProduct * nextFactor); น่าเสียดายที่ฉันไม่สามารถรวบรวมสิ่งนี้ได้ทั้งในตัวอย่างหรือในโค้ดของฉันเองและฉันไม่พบที่อื่นใน MSDN (เช่นวิธีการ Enumerable หรือวิธีการขยาย Array) ที่พูดถึงวิธีนี้ ข้อผิดพลาดที่ฉันได้รับเป็นข้อผิดพลาด "ไม่รู้อะไรเลย" แบบเก่า: error CS1061: 'System.Array' does not contain a definition for 'Fold' and no …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.