มาพูดถึงการย่อครั้งสุดท้ายกันและนี่เป็นขั้นสูงเล็กน้อยและอาจเข้าใจยากเล็กน้อยในตอนแรก แต่เป็นการดีที่จะรู้ว่ามีอยู่จริงและคุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับมันได้โดยฝึกฝนและอ่านเอกสารเกี่ยวกับ
เป็นเจ้าของ.
ตอนนี้ Reduce ไม่ได้เป็นส่วนหนึ่งของฟังก์ชัน python ในตัว
เพื่อให้เราใช้ reduce เราต้องทำแบบนี้
ตอนนี้ คุณไม่เคยเห็นสิ่งนี้มาก่อน และนี่คือสิ่งที่เราจะพูดถึงในส่วนโมดูลของหลักสูตร
แต่โดยพื้นฐานแล้ว สิ่งที่เกิดขึ้นที่นี่คือเมื่อเราดาวน์โหลดล่าม Python และแพ็คเกจ Python
ในกรณีของเรา ripple นี้ทำเพื่อเราแล้ว
เราสามารถนำเข้าบางอย่างจากเครื่องมือขี้ขลาดเหล่านี้ และเครื่องมือฉุนคือสิ่งที่เราเรียกว่าสายพานเครื่องมือ ที่เราสามารถใช้สำหรับเครื่องมือที่ใช้งานได้จริงที่มาพร้อมกับการติดตั้งหลาม
และจากนั้นก็มีฟังก์ชันเฉพาะที่เราสามารถนำเข้าได้
ฉันกำลังจะบอกว่า เฮ้ จาก funk tools จาก tool belt นี้ ฉันต้องการให้คุณนำเข้าฟังก์ชัน reduce เพื่อที่เราจะสามารถใช้มันในโค้ดของเราได้อีกครั้ง
ซึ่งเราจะพูดถึงในภายหลังในหลักสูตรนี้
ดังนั้นสำหรับตอนนี้ เพียงแค่คัดลอกและวางบรรทัดนี้
ต่อไปเราจะลบรายการของเราบางส่วนและใช้การลดลง
ด้วยการลด เราจะต้องมีบางสิ่ง
อันดับแรก.
เราต้องการฟังก์ชัน
แล้วเราต้องการลำดับหรือข้อมูล
แล้วหน้าที่จะเป็นอย่างไร?
ก่อนอื่น ข้อมูลของเราจะเป็นรายการของเรา
ฉันจะบอกว่ารายการของฉันและฟังก์ชันลดขนาดช่วยให้เราทำอะไรที่น่าสนใจได้
ผมสามารถให้ สมมุติว่า ฟังก์ชัน และฟังก์ชันนี้จะเรียกมันว่า แอคคูมูเลเตอร์
และตัวสะสมใช้สองพารามิเตอร์
และจำไว้ว่านี่จะเรียกว่าลด
ดังนั้น Reduce จะมีหน้าที่ในการให้พารามิเตอร์สองตัวนี้จากข้อมูลที่เราให้ ซึ่งก็คือรายการของฉัน
พารามิเตอร์แรกจะเป็นสิ่งที่เราเรียกว่าตัวสะสมหรือในกรณีของฉันคือ ACC
แล้วนี่จะเป็นรายการ
ตอนนี้ที่น่าสนใจมากคือเมื่อเราผ่านรายการของฉันจากการลดลงครั้งแรก เราจะได้รับรายการแรก
รายการแรกจะอยู่ในพารามิเตอร์นี้
อย่างไรก็ตามสิ่งที่อัสซีซีนี้เริ่มต้น
ถ้าฉันลบวงเล็บตรงนี้ออก
และแสดงว่าคุณลด
คุณเห็นว่าเรามีฟังก์ชั่น
ลำดับซึ่งในกรณีของเราจะเป็นรายการของเรา
แล้วค่าตั้งต้นกับค่าตั้งต้นคือสิ่งที่ตัวสะสมจะเป็น
อีกครั้ง สมมุติว่าเราจะมีฟังก์ชันตัวสะสม ที่เราจะยังไม่เรียก
ลดจะทำสิ่งนั้นสำหรับเรา
ฉันจะให้รายการ
หรือข้อมูลที่เราต้องการจะวนซ้ำ
แล้วผมจะให้ค่าเริ่มต้นเป็นศูนย์
ดังนั้นเราจึงมีสาม
พารามิเตอร์ที่นี่หรืออาร์กิวเมนต์สามข้อที่เรามอบให้
ให้ฉันปิดวงเล็บ
ไปเลย
มาทำให้มันใหญ่ขึ้นอีกหน่อยที่นี่ และตรวจดูให้แน่ใจว่าฉันสะกดได้
ในที่นี้ รายการแรกจะเป็นอะไรก็ได้ที่เป็นรายการแรกในรายการของฉัน
จากนั้นตัวสะสมจะตั้งค่าเริ่มต้นเป็นศูนย์ถ้าเราไม่ได้ให้อะไรเลย
หรือในกรณีของเรา เราบอกว่าตัวสะสมจะเป็นศูนย์
อย่างแรกที่เราจะทำคือ เราจะคืน accumulator plus item
ตกลง.
เรามาผ่านเรื่องนี้กันทีละคน
ที่จริงฉันกำลังจะพิมพ์ตัวสะสมและไอเท็มที่นี่เพื่อให้เราเห็น
แล้วผมจะรันโค้ดนี้
บรรทัดที่ 15 ในวัตถุไม่สามารถทำซ้ำได้
และนี่ค่อนข้างยุ่งยากเล็กน้อย แต่จริงๆ แล้วเราไม่จำเป็นต้องมีรายการอีกต่อไปแล้ว เพราะ Reduce กำลังจะทำอะไรบางอย่างที่น่าสนใจสำหรับเรา
ตอนนี้เอาสิ่งนี้ออกก่อนแล้วส่งคืนสิ่งที่ลดให้เราในการพิมพ์
ถ้าฉันคลิกเรียกใช้
ดูนั่นสิ
เอาล่ะ เกิดอะไรขึ้น?
มาดูกันเลย
ลด.
ทำให้เราสามารถลดค่าบางอย่างลงได้จากการ iterable ที่เราให้มัน
เลยไปทีละขั้นตอน
เรามีรายการของฉัน และรายการของฉันจะถูกนำไปใช้กับตัวสะสมผ่านการลด
ตัวสะสมจะรับรายการของฉัน และสิ่งแรกที่จะทำในการส่งผ่านครั้งแรกคือ จะพูดว่า
เฮ้ ตัวสะสมของฉันคืออะไร
ฉันจะตั้งให้เป็นศูนย์
ดังนั้นการผ่านตัวสะสมครั้งแรกจะเป็นศูนย์
รายการจะเป็นหนึ่ง ซึ่งเป็นสิ่งที่เราเห็นตรงนี้ และเราจะบวก 0 บวกหนึ่ง
ดังนั้นตอนนี้เราได้กลับหนึ่ง
ตอนนี้เส้นทางที่สองไป
จะเกิดอะไรขึ้น.
การผ่านตัวสะสมครั้งที่สองจะเป็นสิ่งที่ส่งคืน
ดังนั้นการส่งครั้งต่อไปของสิ่งที่ส่งคืนจะถูกเติมลงในตัวสะสม
ในกรณีของเรา ศูนย์บวกหนึ่งจะเป็นหนึ่ง
รายการจะเป็น
หนึ่งบวกสองจะเป็นสาม
หนึ่งบวกสองเท่ากับสาม
ครั้งต่อไป ตัวสะสมจะเป็นสาม และสิ่งที่เราผ่าน จะเป็นสามเช่นเดียวกับที่คุณเห็นที่นี่
และสามบวกสามได้หก
เราเพิ่งรวบรวมค่าเหล่านี้ทั้งหมดและส่งกลับเลขหกตัวเดียว
เราลดรายการของเราเป็นข้อมูลบางประเภทที่เราจัดการโดยใช้ตัวสะสมในกรณีของเรา
แต่ฉันจะทำอะไรก็ได้ที่ฉันต้องการที่นี่
ตัวอย่างเช่น หากฉันเปลี่ยนสิ่งนี้เป็นไม่เท่ากับสิบ คุณคิดว่าจะเกิดอะไรขึ้นถ้าฉันคลิกเรียกใช้
ฉันได้รับ 16 เพราะฉันเริ่มตัวสะสมเริ่มต้นด้วยสิบ ดังนั้นมันจึงเป็นสิบบวกหนึ่ง ต่อไปเรื่อยๆ
ตอนนี้ลดขนาดลง ทรงพลังจริงๆ เพราะคุณสามารถทำสิ่งต่างๆ กับมันได้มากมาย
มันยืดหยุ่นได้จริงๆ
และที่จริงแล้วภายใต้ประทุนนั้น ฟังก์ชันต่างๆ เช่น ตัวกรองแผนที่ จริงๆ แล้วใช้การย่อนี้ภายใต้ประทุน คุณจึงสามารถสร้างแผนที่และฟังก์ชันตัวกรองของคุณเองได้โดยใช้การย่อ
อีกครั้ง การลดทอนนั้นเข้าใจยากในตอนแรกเล็กน้อยและต้องฝึกฝนเล็กน้อยจึงจะใช้งานได้จริง
แต่เป็นหนึ่งในสิ่งเหล่านั้นที่โปรแกรมเมอร์ขั้นสูงรักจริง ๆ และคุณจะเห็นมากขึ้นเรื่อย
ๆ ตลอดอาชีพการงานของคุณเช่น คุณดีขึ้นเรื่อยๆ
เจอกันใหม่ตอนหน้าค่ะ
ลาก่อน.