การทำความเข้าใจรายการ Python เป็นวิธีการสร้างรายการตามรายการที่มีอยู่ ความเข้าใจในรายการมักใช้เพื่อกรองรายการออกจากรายการหรือเพื่อเปลี่ยนค่าในรายการที่มีอยู่ ความเข้าใจรายการอยู่ในวงเล็บเหลี่ยม
เมื่อคุณทำงานกับรายการ คุณอาจต้องการสร้างรายการโดยยึดตามเนื้อหาของลำดับที่มีอยู่ ตัวอย่างเช่น คุณอาจต้องการสร้างรายการตามลำดับอักขระ หรือคุณอาจต้องการรายการที่คูณเนื้อหาของอีกรายการหนึ่งด้วยสอง
นั่นคือที่มาของความเข้าใจในรายการ บทช่วยสอนนี้จะสำรวจพร้อมตัวอย่าง พื้นฐานของรายการ Python และวิธีใช้ความเข้าใจในรายการ
รายการ Python:ทบทวน
โครงสร้างข้อมูลรายการช่วยให้คุณสามารถจัดเก็บคอลเลกชันของรายการใน Python รายการมักใช้เมื่อคุณต้องการทำงานกับค่าหลายค่าที่เกี่ยวข้องกันในทางใดทางหนึ่ง
ตัวอย่างเช่น คุณสามารถใช้รายการเพื่อจัดเก็บรสชาติของไอศกรีมทั้งหมดที่ขายในร้านไอศกรีม หรือคุณสามารถใช้รายการเพื่อเก็บรายชื่อหมายเลขโทรศัพท์ของสมาชิกที่ชมรมไวน์
นี่คือตัวอย่างรายการในภาษา Python:
pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken']
ตอนนี้เราได้แก้ไขพื้นฐานของรายการแล้ว เรามาเริ่มพูดถึงวิธีใช้ความเข้าใจในรายการได้
ความเข้าใจรายการ Python
ความเข้าใจรายการ Python สร้างรายการใหม่จากเนื้อหาของรายการอื่น คุณสามารถใช้ความเข้าใจรายการเพื่อทำซ้ำรายการหรือแก้ไขเนื้อหาของรายการที่มีอยู่ลงในรายการใหม่ หรือคุณสามารถถ่ายโอนเนื้อหาของ iterable อื่นไปยังรายการที่มีความเข้าใจรายการ
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
คุณสามารถระบุตัวกรองเพื่อให้รายการใหม่ของคุณรวมเฉพาะค่าบางอย่างได้ ตัวอย่างเช่น คุณสามารถสร้างรายการใหม่จากรายการหมายเลข รายการใหม่ของคุณมีได้เฉพาะตัวเลขที่มากกว่า 250
ไวยากรณ์สำหรับความเข้าใจรายการใน Python มีดังต่อไปนี้:
[expression for item in list]
ไวยากรณ์นี้คล้ายกับ Python for คำแถลง. แต่คำสั่งอยู่ในบรรทัดเดียว หากต้องการแยกความแตกต่างระหว่างคำสั่ง for ความเข้าใจรายการจะอยู่ในวงเล็บเหลี่ยม
ไวยากรณ์ด้านบนมีสามส่วน:
- การแสดงออก :ค่าสิ้นสุดที่เข้าสู่รายการใหม่
- รายการ :แต่ละรายการในรายการที่คุณทำซ้ำ
- รายการ :รายการหรืออ็อบเจ็กต์ที่ทำซ้ำได้ซึ่งรายการเข้าใจผ่าน (ประเภทข้อมูลที่ยอมรับได้ ได้แก่ ทูเพิล สตริง และรายการ)
คุณสามารถใช้รายการความเข้าใจกับ Python if...else คำสั่งภายใน:
[expression for item in list if condition else none]
ความเข้าใจนี้จะเพิ่มรายการลงในรายการก็ต่อเมื่อตรงตามเงื่อนไขที่ระบุเท่านั้น
การใช้การทำความเข้าใจรายการช่วยให้คุณสร้างรายการใหม่จากรายการที่มีอยู่โดยไม่ต้องกำหนด สำหรับ แบบเต็ม งบ. สำหรับ คำสั่งใช้โค้ดอย่างน้อยสองบรรทัด ในขณะที่คุณสามารถเขียนรายการความเข้าใจในบรรทัดเดียวได้
บางคนบอกว่าการเข้าใจรายการเป็นโค้ด Pythonic มากกว่า เนื่องจากมีประสิทธิภาพมากกว่าการใช้ for แบบสั้น คำสั่ง
ตัวอย่างความเข้าใจรายการ Python
สมมติว่าเราต้องการสร้างรายชื่อพิซซ่าไก่ทั้งหมดที่เราขายในร้านของเรา เราจะย้ายพิซซ่าไก่ทั้งหมดไปเป็น ไก่ หมวดหมู่ในเมนูของเรา ในการทำเช่นนั้น เราสามารถกรองพิซซ่าของเราโดยใช้ for งบ. หรือเราอาจกรองรายการโดยใช้ความเข้าใจรายการ
เราสามารถใช้ list comprehension เพื่อสร้างรายชื่อพิซซ่าใหม่ที่มีชื่อ Chicken ตามรายการพิซซ่าที่มีอยู่ของเรา เราสามารถทำได้โดยใช้รหัสนี้:
pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken'] chicken_pizzas = [p for p in pizzas if "Chicken" in p] print(chicken_pizzas)
ความเข้าใจของเราส่งคืนรายการผลลัพธ์ต่อไปนี้:
[‘Chicken’, ‘Chicken and Bacon’, ‘BBQ Chicken’]
ในโค้ดของเรา ขั้นแรกเราจะกำหนดรายการพิซซ่าในเมนูของเรา พิซซ่าของเราถูกเก็บไว้ในตัวแปร Python ที่เรียกว่า pizzas . จากนั้น เราใช้การทำความเข้าใจรายการเพื่อสร้างรายการพิซซ่าใหม่ที่มีชื่อ ไก่
ความเข้าใจรายการของเราประกอบด้วยส่วนต่างๆ ดังต่อไปนี้:
- p :นี่คือค่าที่จะเพิ่มลงในรายการของเรา
- สำหรับ p ในพิซซ่า :สิ่งนี้จะวนซ้ำผ่านพิซซ่าทุกรายการในรายการ "พิซซ่า" ของเรา
- ถ้า “ไก่” ใน p :ตรวจสอบเพื่อดูว่าแต่ละพิซซ่ามี “ไก่” หรือไม่ หากประเมินเป็น True ค่าที่เก็บไว้ใน “p” จะถูกเพิ่มลงในรายการของเรา
ความเข้าใจรายการของเราใช้โค้ดเพียงบรรทัดเดียว ในตัวอย่างต่อไป เราจำเป็นต้องใช้โค้ดสามบรรทัดที่มี for คำสั่งเพื่อให้มันทำงาน ตัวอย่างต่อไปของเราแสดงขอบเขตที่ความเข้าใจรายการช่วยให้คุณเขียนโค้ดที่สะอาดขึ้น
ไม่มีความเข้าใจในรายการ
กลับมาที่ตัวอย่างพิซซ่าไก่กัน โดยไม่ใช้การทำความเข้าใจรายการ หากเราต้องการสร้างรายการพิซซ่าไก่ในเมนูของเรา เราจะใช้รหัสนี้:
pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken'] chicken_pizzas = [] for pizza in pizzas: if "Chicken" in pizza: chicken_pizzas.append(pizza) print(chicken_pizzas)
รหัสของเราส่งคืน:
[‘Chicken’, ‘Chicken and Bacon’, ‘BBQ Chicken’]
อันดับแรก เรากำหนดสองรายการ รายการเดียวเก็บรายการพิซซ่าที่ขายในร้านของเรา รายชื่ออื่นเก็บรายชื่อพิซซ่าไก่ทั้งหมดที่เราขาย รายชื่อพิซซ่าไก่ที่เราขายว่างเปล่า
เราใช้คำสั่ง "for" เพื่ออ่านพิซซ่าแต่ละชิ้นในรายการพิซซ่าของเรา จากนั้นเราตรวจสอบดูว่าพิซซ่าแต่ละอันมีคำว่า ไก่ . หรือไม่ ถ้าพิซซ่ามีคำว่า ไก่ เราเพิ่มพิซซ่านั้นในรายการพิซซ่าไก่ของเรา ในกรณีนี้ พิซซ่า 3 ถาดจะประกอบด้วย ไก่ และพิซซ่าทั้งสามนี้ถูกเพิ่มใน chicken_pizzas . ของเรา รายการ
อย่างที่คุณเห็น เพื่อตรวจสอบว่าพิซซ่ามี ไก่ และเพื่อเพิ่มลงในรายการของเรา เราใช้โค้ดสามบรรทัด มีวิธีการที่มีประสิทธิภาพมากขึ้นในการเขียนโค้ดนี้:โดยใช้การทำความเข้าใจรายการ
แสดงรายการความเข้าใจโดยใช้ if...else
คุณยังสามารถใช้ if...else คำสั่งที่มีความเข้าใจรายการ
ก่อนหน้านี้ เราใช้ if คำสั่งเพิ่มพิซซ่าในรายการพิซซ่าไก่ของเรา เราเพิ่มพิซซ่าก็ต่อเมื่อชื่อพิซซ่ามีคำว่า ไก่ . แต่สมมติว่าเรากำลังทำรายการพิซซ่าที่เป็นมังสวิรัติ
เราต้องการเพิ่ม “เนื้อ” ในรายการหากชื่อพิซซ่ามี ไก่ และ มังสวิรัติ ถ้าชื่อพิซซ่าไม่มี ไก่ .
สามารถทำได้โดยใช้การทำความเข้าใจรายการ:
pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken'] is_veggie = ["Meat" if "Chicken" in p else "Vegetarian" for p in pizzas] print(is_veggie)
รหัสของเราส่งคืน:
[‘Meat’, ‘Vegetarian’, ‘Meat’, ‘Vegetarian’, ‘Vegetarian’, ‘Meat’]
มาทำลายรหัสของเรากัน ขั้นแรก เราประกาศรายชื่อพิซซ่าที่เรียกว่า พิซซ่า . จากนั้น เราใช้การทำความเข้าใจรายการเพื่อประเมินว่าชื่อพิซซ่ามี ไก่ หรือเปล่า
หากชื่อพิซซ่ามี ไก่ , ค่า เนื้อ ถูกเพิ่มใน is_veggie . ของเราแล้ว รายการ. มิฉะนั้นค่า มังสวิรัติ ถูกเพิ่ม
อย่างที่คุณเห็น ค่าแรกใน is_veggie . ของเรา รายการคือ เนื้อ เนื่องจากมีค่าที่สอดคล้องกันใน พิซซ่า รายการคือ ไก่ . แต่ค่าต่อไปของเราคือ มังสวิรัติ เนื่องจากมีค่าที่สอดคล้องกันใน พิซซ่า รายการคือ Margherita ซึ่งไม่มี ไก่ .
บทสรุป
ความเข้าใจรายการช่วยให้คุณสร้างรายการใหม่ตามรายการที่มีอยู่ เมื่อใช้การทำความเข้าใจรายการ คุณสามารถสร้างสำเนาของรายการ หรือสร้างรายการใหม่ที่กรองค่าออกจากรายการเก่า
บทช่วยสอนนี้กล่าวถึงโดยอ้างอิงถึงตัวอย่าง พื้นฐานของรายการ Python และวิธีใช้เทคนิคทำความเข้าใจรายการเพื่อสร้างรายการใหม่
คุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการเข้ารหัสใน Python หรือไม่? ดูคู่มือ How to Learn Python ของเรา คู่มือนี้ประกอบด้วยรายการของแหล่งข้อมูลการเรียนรู้ที่จะช่วยให้คุณเดินทางต่อสู่การเรียนรู้ Python อย่างเชี่ยวชาญ