Python List Comprehension พร้อมตัวอย่าง [2022]
เผยแพร่แล้ว: 2021-06-29ลำดับสามารถสร้างแบบกระชับหรือสั้นจากลำดับที่กำหนดไว้แล้วผ่านการใช้ความเข้าใจในงูหลาม ลำดับรวมถึงโครงสร้างข้อมูล เช่น รายการ พจนานุกรม ชุด ฯลฯ ความเข้าใจต่อไปนี้ได้รับการสนับสนุนในไพ ธ อน:
- แสดงรายการความเข้าใจ
- ความเข้าใจในพจนานุกรม
- ตั้งความเข้าใจ
- เครื่องกำเนิดความเข้าใจ
บทความนี้จะเน้นที่รายการความเข้าใจใน python และการใช้งาน เช่นเดียวกับชุดความเข้าใจรายการและ ความเข้าใจพจนานุกรมในหลาม ก็สามารถสร้างได้เช่นกัน
สารบัญ
ความเข้าใจรายการคืออะไร?
Python เป็นภาษาโปรแกรมที่ได้รับการยอมรับอย่างกว้างขวาง ซึ่งช่วยให้ผู้ใช้สามารถเขียนโค้ดที่ง่ายและสวยงาม ความเข้าใจรายการเป็นคุณลักษณะที่โดดเด่นอย่างหนึ่งของ python ซึ่งใช้สำหรับสร้างรายการใหม่ ด้วยการใช้โค้ดเพียงบรรทัดเดียว ฟังก์ชันก็สามารถสร้างได้
ไม่จำเป็นว่าเงื่อนไข if ควรมีอยู่ใน list comprehension อย่างไรก็ตาม มีหลายแบบฟอร์มใน list comprehension
ดังนั้น รายการความเข้าใจ
- เป็นวิธีที่สง่างามในการกำหนดและสร้างรายการตามรายการที่มีอยู่
- เมื่อเทียบกับฟังก์ชันปกติสำหรับการสร้างรายการและการวนซ้ำ ความเข้าใจรายการมีขนาดกะทัดรัดและเร็วกว่ามาก
- เพื่อให้โค้ดใช้งานง่ายขึ้น ควรหลีกเลี่ยงการเขียนรายการที่ยาวเพื่อความเข้าใจ
- ในขณะที่ใช้ for loop สามารถเขียนรายการความเข้าใจใหม่ได้
จะสร้างรายการได้อย่างไร?
มีหลายวิธีในการสร้างรายการในภาษาโปรแกรมงูหลาม
1. สำหรับลูป
For loop ใช้สำหรับสร้างรายการ ต้องปฏิบัติตามสามขั้นตอนเพื่อสร้างรายการองค์ประกอบ
- รายการที่ว่างเปล่าจะต้องสร้างอินสแตนซ์
- ใช้การวนซ้ำกับองค์ประกอบที่สามารถวนซ้ำได้
- แต่ละองค์ประกอบถูกต่อท้าย รายการ
2. แผนที่() วัตถุ
แนวทางอื่นเช่น map() ขึ้นอยู่กับการเขียนโปรแกรมเชิงฟังก์ชัน อ็อบเจ็กต์ถูกสร้างขึ้นเมื่อมีการส่งต่อฟังก์ชันและองค์ประกอบที่ iterable ไปยัง map() ผลลัพธ์ที่จะสร้างขึ้นจากการดำเนินการขององค์ประกอบ iterable ผ่านฟังก์ชันที่ให้มาจะมีอยู่ในอ็อบเจ็กต์
3. รายการความเข้าใจ
อีกวิธีหนึ่งในการสร้างรายการคือการใช้ความเข้าใจรายการ for loop สามารถเขียนใหม่ได้ในโค้ดที่ประกอบด้วยเพียงบรรทัดเดียว
เมื่อเทียบกับวิธีการก่อนหน้านี้ที่สร้างรายการว่างก่อนแล้วจึงเพิ่มองค์ประกอบในตอนท้าย ในกรณีนี้จะเกิดขึ้นเพียงบรรทัดเดียว รายการและเนื้อหามีการกำหนดอย่างง่าย ๆ ในเวลาเดียวกัน รหัสที่ใช้คือ
มีสามองค์ประกอบในทุก ความเข้าใจ รายการ หลาม
- นิพจน์: เป็นสมาชิก นิพจน์ เป็นการเรียกเมธอดหรือนิพจน์ใด ๆ ที่คืนค่า
- สมาชิก: เป็นค่าหรืออ็อบเจ็กต์ในรายการ iterable ค่าของสมาชิกคือ 1 ในตัวอย่างข้างต้น
- Iterable: เป็นรายการ ลำดับ ชุด หรืออ็อบเจ็กต์อื่นๆ ที่องค์ประกอบสามารถส่งคืนได้ทีละรายการ Iterable คือ range(10) ในตัวอย่างด้านบน
ความเข้าใจรายการ Python สามารถทำงานได้ดีแม้ในสถานที่ที่ใช้ map() ตัวอย่างข้างต้นสามารถเขียนใหม่เป็น
ความแตกต่างในการใช้ map() และ list comprehension คือ รายการจะถูกส่งคืนในกรณีที่ list comprehension ในขณะที่อ็อบเจกต์แผนที่จะถูกส่งคืนในกรณีของ map()
คำสั่งแบบมีเงื่อนไข
รายการที่มีอยู่สามารถแก้ไขได้โดยใช้คำสั่งเงื่อนไขในการทำความเข้าใจรายการ รายการหรือสิ่งอันดับ ทั้งสองสามารถแก้ไขได้ผ่านการทำความเข้าใจรายการหลาม
1. การใช้เงื่อนไข if
เงื่อนไขของ 'if' สามารถใช้ในการทำความเข้าใจรายการผ่านรหัสต่อไปนี้
การรันโปรแกรมข้างต้นจะสร้างผลลัพธ์: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
2. การใช้เงื่อนไข Nested IF
ความเข้าใจรายการตรวจสอบต่อไปนี้:
- องค์ประกอบ y หารด้วย 2 หรือ 5 ลงตัวหรือไม่?
- หาก y เป็นไปตามเงื่อนไขทั้งสองเงื่อนไข ค่านั้นจะถูกผนวกเข้ากับ num_list
อ่านเพิ่มเติม: แอปพลิเคชั่น Python ที่น่าสนใจในโลกแห่งความจริง
3. การใช้ if-else
ในตัวอย่างที่แสดงด้านบน ตัวเลขสิบตัว กล่าวคือ ตั้งแต่ 0 ถึง 10 จะถูกตรวจสอบโดยการทำความเข้าใจรายการ
4. การใช้ลูปที่ซ้อนกัน
เอาต์พุตที่สร้าง: [[1, 4], [2, 5], [3, 6], [4, 8]]
ทรานสโพสของเมทริกซ์คำนวณโดยใช้สองลูป
- เมื่อเทียบกับลูปที่ซ้อนกันปกติแล้ว ลูปที่ซ้อนกันอยู่ใน list comprehensions จะทำงานแตกต่างจากลูปที่ซ้อนกันอื่นๆ
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับ ความเข้าใจรายการหลาม คือ
[นิพจน์สำหรับรายการในรายการ]
สมมติว่าเรามีสตริงและเราต้องการทำซ้ำโดยใช้รายการความเข้าใจ
ในตัวอย่างข้างต้น จะสังเกตได้ว่า 'มนุษย์' ถูกใช้เป็นสตริงและไม่ใช่รายการ นี่คือพลังของความ เข้าใจ รายการหลาม ไม่ว่าจะเป็นสตริงหรือทูเพิล ความเข้าใจรายการสามารถระบุและทำงานกับมันได้เหมือนรายการ
สิ่งเดียวกันสามารถทำได้โดยใช้ลูป แต่ไวยากรณ์ของความเข้าใจรายการไม่สามารถตามด้วยการวนซ้ำได้
บทสรุป
ในบทความนี้ คุณได้เรียนรู้สั้น ๆ เกี่ยวกับรายการความเข้าใจใน python และการสร้างในรูปแบบต่างๆ ด้วยความรู้ความเข้าใจนี้ อาจมีการลองใช้รหัสอื่นๆ สำหรับงานของคุณ แนวคิดของ python กำลังได้รับความสนใจอย่างมาก แต่จะมีประโยชน์มากกว่าหากคุณสามารถใช้ข้อมูลของคุณได้อย่างมีประสิทธิภาพ สามารถทำได้โดยการเขียนรหัสที่ชัดเจนและรัดกุม
ดังนั้น หากคุณยินดีที่จะเรียนรู้เกี่ยวกับ python และการนำไปใช้ในการทำเหมืองข้อมูล คุณสามารถตรวจสอบหลักสูตร Executive PG Program ใน Data Science ที่นำเสนอโดย upGrad หลักสูตร 12 เดือนออกแบบมาสำหรับมืออาชีพระดับเริ่มต้น (ทั้งชายและหญิง) ที่มีอายุระหว่าง 21 ถึง 45 ปี และเป็นหลักสูตร PGP ที่ได้รับการรับรองจาก NASSCOM แห่งแรกของอินเดีย ด้วยการเรียนรู้มากกว่า 400 ชั่วโมงและประสบการณ์ตรงจากเครื่องมือและภาษามากกว่า 14 ภาษา หลักสูตรนี้ได้รับการออกแบบมาเป็นพิเศษเพื่อตอบสนองความฝันของคุณ ข้อสงสัยเกี่ยวกับหลักสูตรยินดีเป็นอย่างยิ่ง
รายการ Python ถือเป็นโครงสร้างข้อมูลที่ดีที่สุดในการจัดเก็บข้อมูลในสถานการณ์ต่อไปนี้: ความเข้าใจรายการมีข้อดีที่สำคัญหลายประการเหนือลูป ด้านล่างนี้คือข้อดีบางประการของการทำความเข้าใจรายการ: สามารถสร้างรายการ Python ได้หลายวิธีดังที่กล่าวไว้ด้านล่าง:เมื่อใดจึงควรใช้รายการ Python สำหรับการจัดเก็บข้อมูล
1. รายการสามารถใช้เพื่อจัดเก็บค่าต่างๆ ด้วยประเภทข้อมูลที่แตกต่างกัน และสามารถเข้าถึงได้โดยดัชนีที่เกี่ยวข้องเท่านั้น
2. เมื่อคุณต้องการดำเนินการทางคณิตศาสตร์กับองค์ประกอบต่างๆ คุณสามารถใช้รายการได้ เนื่องจากจะช่วยให้คุณดำเนินการองค์ประกอบทางคณิตศาสตร์ได้โดยตรง
3. เนื่องจากรายการสามารถปรับขนาดได้ จึงสามารถใช้เก็บข้อมูลได้เมื่อคุณไม่แน่ใจเกี่ยวกับจำนวนองค์ประกอบที่จะจัดเก็บ
4. องค์ประกอบรายการสามารถเปลี่ยนแปลงได้ง่าย และยังสามารถจัดเก็บองค์ประกอบที่ซ้ำกัน ซึ่งแตกต่างจากชุดและพจนานุกรม ข้อดีของการเข้าใจรายการแบบวนซ้ำคืออะไร
1. การทำความเข้าใจรายการทำได้เร็วกว่าและกระชับกว่าการวนซ้ำมาก เนื่องจากจะรวบรวมองค์ประกอบทั้งหมดก่อนและแทรกองค์ประกอบทั้งหมดเข้าด้วยกันในคราวเดียว
2. สิ่งเดียวกันกับที่ลูปทำในบล็อกสามารถทำได้ในบรรทัดเดียวโดยใช้การทำความเข้าใจรายการ ทำให้โค้ดสะอาดขึ้นและใช้งานง่ายขึ้น
3. การแก้ไขเมทริกซ์เป็นเวกเตอร์และการกรองรายการเป็นตัวอย่างที่ดีที่สุดบางส่วนที่การเข้าใจรายการสามารถเห็นได้ดีกว่าการวนซ้ำ ระบุวิธีต่างๆ ในการสร้างรายการหรือไม่
1. การใช้ for loops : การ for loop เป็นวิธีการสร้างรายการที่สำคัญที่สุด สามารถสร้างรายการโดยใช้ for loop ได้สามวิธีง่ายๆ:
ก. สร้างรายการเปล่า
ข. ทำซ้ำองค์ประกอบทั้งหมดที่จะแทรก
ค. ผนวกแต่ละองค์ประกอบในรายการโดยใช้ฟังก์ชัน append()
2. การใช้ map(): สามารถใช้ฟังก์ชัน map() ใน Python เพื่อสร้างรายการได้ ฟังก์ชันนี้ยอมรับสองพารามิเตอร์:
ก. ฟังก์ชัน : ฟังก์ชันที่แผนที่ส่งผ่านแต่ละรายการแบบวนซ้ำได้
ข. Iterable: องค์ประกอบหรือ iterable ที่จะจับคู่
3. การใช้ List comprehensions : วิธีนี้เป็นวิธีการที่เหมาะสมที่สุดในทั้งสามวิธี ในวิธีการข้างต้น จะต้องสร้างรายการว่างก่อน ความเข้าใจรายการช่วยให้คุณสามารถแทรกองค์ประกอบทั้งหมดในรายการโดยใช้บรรทัดเดียว