มาพูดถึงบางสิ่งที่ค่อนข้างพิเศษใน Python กัน และทำให้สิ่งต่าง ๆ ดีจริงๆ เหมือนกับโปรแกรมเมอร์ Python
และมันเรียกว่าความเข้าใจ
เป็นหนึ่งในเงื่อนไขสำคัญของเรา
ความเข้าใจ
พวกเขาคืออะไร?
จริงๆ แล้วเรียกว่า list comprehension หรือ set comprehension หรือ dictionary comprehension
และนี่คือประเภทข้อมูลบางส่วนที่เรามีใน Python
และเราสามารถใช้ความเข้าใจกับข้อมูลทั้งสามประเภทนี้ได้
ในขณะที่ฉันกำลังบันทึก มีนกร้องเจี๊ยก ๆ ในพื้นหลัง
ฉันคิดว่ามันคงจะดีถ้าเพียงแค่บันทึกโดยมีนกร้องเจี๊ยก ๆ ในพื้นหลัง
ฉันคิดว่ามันจะสงบสำหรับคุณถ้าคุณรำคาญ
ขอโทษนะ แต่เดี๋ยวก่อน พวกนกก็ต้องสนุกเหมือนกัน
โอเค แล้วความเข้าใจเหล่านี้คืออะไร?
มันเป็นวิธีที่รวดเร็วสำหรับเราในการสร้างรายการหรือชุดหรือพจนานุกรมใน Python แทนที่จะวนซ้ำหรือต่อท้ายรายการจำนวนมากในรายการ
ให้ฉันแสดงให้คุณดู แทนที่จะทำบางอย่าง เช่น รายการของฉันเท่ากับรายการที่ว่างเปล่า และจากนี้ไป
ฉันจะทำบางอย่าง เช่น อักขระสี่ตัวและสวัสดี
รายการของฉันจุดต่อท้าย
อักขระ.
ในที่สุดฉันก็สามารถสร้างรายการนี้ได้
สมมติว่ารายการของฉันแล้วเราจะพิมพ์ออกมา
ถ้าฉันคลิกเรียกใช้
ฉันสร้างรายการที่มีตัวละครจากสวัสดี
ก็ได้ แต่.
มีวิธีที่รวดเร็วกว่าและสะอาดกว่านี้ไหม
และใช่มีรายการความเข้าใจใน Python
อีกครั้งมันค่อนข้างพิเศษ
คุณไม่เห็นมันในภาษาการเขียนโปรแกรมมากนัก แต่คนที่ใช้ Python นั้นชอบฟีเจอร์นี้มาก
และฉันก็เช่นกัน
แล้วเราจะทำสิ่งนี้ได้อย่างไร?
การใช้ความเข้าใจรายการ
รูปแบบที่เราจะทำตามเป็นแบบนี้
เรากำลังจะบอกว่า Parab
สำหรับ.
Param ใน iterable
เมื่อฉันพูด param ฉันหมายถึงพารามิเตอร์ หรือในกรณีของเรา มันอาจเป็นตัวแปร เราจึงสามารถตั้งชื่อมันอะไรก็ได้ที่เราต้องการ
ให้ตั้งชื่อตัวละครนี้เหมือนที่เราทำในนี้ แล้วตามด้วยชื่อเหมือนที่เราทำในนี้
แล้วเราต้องการ iterable
ในกรณีของเราเราจะกล่าวสวัสดี
เพื่อที่ว่าถ้าฉันลบสิ่งนี้และฉันคลิกเรียกใช้
ฉันได้รับสิ่งเดียวกันเช่นเดียวกับที่
ดังนั้นเมื่อสร้างในบรรทัดที่สาม ฉันสร้างรายการที่มีตัวละครและสวัสดี
ฉันทำสี่ลูปที่นี่และฉันสร้างรายการ
วิธีที่ฉันชอบคิดก็คือ เฮ้ สร้างตัวแปร แล้วเราจะทำ
for loop โดยบอกว่า เฮ้ สำหรับแต่ละตัวแปรใน iterable ที่เพิ่มเข้าไปในรายการ
ตกลง.
มาขยายความกัน
สมมุติว่าอยากทำอย่างอื่น
เรียกมันว่ารายการของฉันด้วย
และฉันต้องการสร้าง สมมติว่า รายการด่วนที่มีตัวเลขตั้งแต่ 0 ถึง 100 หรือ 0 ถึง 99
ฉันจะทำสิ่งนี้ได้อย่างไร
อีกครั้งโดยใช้การทำความเข้าใจรายการ
ฉันจะบอกว่าหมายเลขสี่หมายเลข
แล้วกฎที่ฉันจะใช้คืออะไร?
ฉันจะใช้ช่วงและพูดว่า 0 ถึง 100 เพื่อว่าถ้าฉันคลิกเรียกใช้ที่นี่
ดูนั่นสิ
ฉันได้รับรายการยาว ๆ ที่บรรจุตัวเลขเหล่านี้ไว้ล่วงหน้า
มันเจ๋งแค่ไหน?
ตกลง.
แต่นี่คือความท้าทายของฉันสำหรับคุณ
ถ้าฉันต้องการสิ่งนี้ล่ะ
แต่ตัวเลขทั้งหมดควรคูณด้วยสอง
ฉันต้องการแสดงรายการโดยที่ค่านี้เท่ากับศูนย์
นี่คือสอง
นี่คือสี่
นี่คือหก
นี่คือแปด
นี่คือสิบ
เป็นต้น.
ฉันจะทำอย่างไร?
จริงๆ แล้ว เราสามารถขยายสิ่งนี้ได้ เพื่อให้รายการสามของฉันในครั้งนี้ จะใช้สี่ลูปแบบเดียวกับที่เราเคยเห็นมาก่อน
แบบนี้.
แต่แทนที่จะเป็นเพียงตัวแปร ตอนนี้เป็นการแสดงออกว่าเราต้องการที่จะดำเนินการกับอักขระแต่ละตัวอย่างไร
เช่นเดียวกับที่เราเห็นในแลมบ์ดานิพจน์
ตอนนี้ฉันสามารถพูด Numb Times ได้แล้ว
สำหรับ.
รายการเหล่านี้
ดังนั้นตอนนี้ถ้าฉันทำรายการของฉันสาม
เฮ้ ตรวจสอบออก
นั่นก็สวยดีใช่มั้ย?
ตกลง.
มาทำให้มันท้าทายยิ่งขึ้นไปอีก
สมมุติว่ารายการของฉัน 3, เรามาทำให้มันใหญ่ขึ้นอีกหน่อยที่นี่
รายการของฉันสำหรับ
ฉันต้องการเปลี่ยนเพื่อให้ในรายการของฉันฉันยังคงอยู่ที่นี่อะไร?
ฉันมีตัวเลข แต่ฉันต้องการเก็บเฉพาะเลขคู่
ในกรณีนี้, พวกมันทั้งหมด, แม้เพราะพวกมันคูณด้วยสอง.
แต่ถ้ายกตัวอย่างเช่น เราทำเพื่อยกกำลังสอง และให้แสดงความคิดเห็นสักครู่แล้วคลิกเรียกใช้
เราเห็นว่าตัวเลขบางตัวไม่ใช่
ยังไงก็อยากเก็บเลขพวกนี้ไว้
แต่คนที่คู่กันเท่านั้น
ฉันจะทำมันได้อย่างไร?
ในกรณีนี้ เรามีวิธีใหม่ในการสร้างนิพจน์รายการนี้
เราจะทำแบบเดียวกับที่เราทำที่นี่
ดังนั้นฉันจะคัดลอกสิ่งนั้น
แต่ในตอนท้าย จำไว้ว่า ตอนนี้เรามีนิพจน์ตรงนี้ สิ่งที่เราจะทำเพื่อให้มีผลกับรายการใดๆ
ใน iterable
เราจะวนรอบสิ่งต่างๆ
และสุดท้ายหลังจากนี้, เราสามารถบอกได้ว่าถ้าหรือเราทำเงื่อนไข if ได้
ในกรณีของเรา สมมุติว่า ถ้า num
โมดูโลสองมีค่าเท่ากับศูนย์
จากนั้นเพิ่มลงในรายการเท่านั้น
ดังนั้นหากเราคลิกเรียกใช้
โอ้.
และตรวจสอบให้แน่ใจว่าเป็นรายการสำหรับ Click Run
ดูนั่นสิ
ทั้งหมดนี้เป็นเลขคู่
ลองดูรูปแบบนี้
จดจำ.
สิ่งเหล่านี้เรียกว่าความเข้าใจรายการ
เป็นวิธีที่เราสร้างรายการด้วย Python ได้อย่างรวดเร็ว แทนที่จะวนซ้ำและใช้ append หรือสิ่งที่เราเคยเห็นมาก่อน
ดังนั้นมันจึงเป็นรูปแบบชวเลขสำหรับเราที่จะทำสิ่งที่ไม่เหมือนใครเช่นนี้
วิธีที่เราสามารถทำได้คือมีการแสดงออกถึงสิ่งที่เราต้องการทำกับแต่ละรายการที่เราทำซ้ำ
เราวนซ้ำ
การใช้ for วนซ้ำผ่าน iterable เราให้ตัวแปรที่เราจะดำเนินการ จากนั้นหากต้องการ
เราก็มีตัวเลือกในการเพิ่มเงื่อนไขและพูดว่า เฮ้ รวมเฉพาะในรายการตาม เงื่อนไขนี้ขึ้นอยู่กับจริงหรือเท็จ
เยี่ยมมาก
ตอนนี้ แม้ว่าการเข้าใจรายการจะดีมากเพราะเป็นเพียงแค่บรรทัดเดียว
อาจทำให้สับสนเมื่อดูรหัสนี้
คุณต้องคุ้นเคยกับการเข้าใจรายการก่อนจึงจะเข้าใจสิ่งที่เกิดขึ้น
ดังนั้นแม้ว่าสิ่งนี้จะทำให้โค้ดสั้นลงหรืออาจจะสะอาดกว่า แต่ก็ทำให้อ่านง่ายออกไปเล็กน้อย
ดังนั้น อาจเป็นการดีกว่าถ้าเพียงแค่สร้างฟังก์ชันอธิบาย เช่น สร้างรายการของเลขคู่หรือบางอย่างตามบรรทัดเหล่านั้น
ดังนั้นจึงเป็นคำอธิบายมากขึ้นและนักพัฒนารายอื่นอาจมีความคิดที่ดีขึ้นว่าเกิดอะไรขึ้น
ดังนั้นจึงเป็นการแลกเปลี่ยนเสมอ
พักก่อนแล้วค่อยพูดถึงความเข้าใจเกี่ยวกับชุดและพจนานุกรมในวิดีโอหน้า
ลาก่อน.