ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีใช้เมธอดรายการของ Python เพื่อเพิ่มองค์ประกอบ แก้ไข และลบองค์ประกอบออกจากรายการ Python
เมื่อคุณเริ่มเขียนโปรแกรมด้วย Python รายการเป็นหนึ่งในโครงสร้างข้อมูลในตัวแบบแรกที่คุณจะได้เรียนรู้ ในอีกไม่กี่นาทีข้างหน้า เราจะตรวจสอบพื้นฐานของรายการ Python จากนั้นจะพูดถึงวิธีรายการที่มีประโยชน์ต่างๆ ที่คุณสามารถใช้เมื่อทำงานกับรายการ
เอาล่ะ!
ภาพรวมของรายการ Python
ใน Python รายการคือชุดของรายการที่มีประเภทข้อมูลเดียวกันหรือต่างกัน คุณสามารถวนซ้ำคอลเลกชันเพื่อเข้าถึงรายการโดยใช้โครงสร้างลูป เช่น สำหรับลูป
เช่นเดียวกับ Python iterables ทั้งหมด รายการตามด้วยการสร้างดัชนีเป็นศูนย์และสนับสนุนการดำเนินการแบ่งส่วนข้อมูล
เป็นคอลเลกชันที่ไม่แน่นอนเพื่อให้คุณสามารถแก้ไขได้ ซึ่งรวมถึงการเพิ่มและลบองค์ประกอบออกจากรายการ การเรียงลำดับองค์ประกอบตามลำดับเฉพาะ การกลับลำดับขององค์ประกอบ และอื่นๆ อีกมากมาย เมธอดรายการในตัวของ Python ช่วยให้คุณดำเนินการเหล่านี้ได้
ต่อไป มาดูเมธอดรายการ Python ที่มีประโยชน์กัน
เมธอดรายการในตัวใน Python
ในส่วนนี้ เราจะเรียนรู้วิธีการทำรายการที่มีประโยชน์ เราจะเขียนโค้ดตัวอย่างเพื่อดูการทำงานของเมธอดรายการเหล่านี้
เราจะใช้รายการ pgm_langs ต่อไปนี้ เป็นรายการสตริงที่มีชื่อภาษาโปรแกรมยอดนิยม
pgm_langs = ['Python','Go','Rust','JavaScript']
แทรกรายการด้วยการแทรก ()
คุณอาจต้องการแทรกองค์ประกอบที่ดัชนีใดดัชนีหนึ่ง ในการทำเช่นนี้ คุณสามารถใช้เมธอด insert() การเรียกเมธอดรายการ insert() ใช้เวลาใน:
- ดัชนีที่ควรแทรกองค์ประกอบและ
- องค์ประกอบที่จะแทรก
มาแทรก ‘Scala’ ที่ดัชนี 1 โดยใช้วิธี index()
pgm_langs = ['Python','Go','Rust','JavaScript'] pgm_langs.insert(1,'Scala') print(pgm_langs) # Output: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript']
เพิ่มรายการในรายการโดยผนวก ()
บางครั้งคุณอาจต้องเพิ่มองค์ประกอบที่ส่วนท้ายของรายการ ในการทำเช่นนี้ คุณสามารถใช้วิธีการผนวก()
มาเพิ่มสตริง ‘Java’ ต่อท้ายรายการโดยใช้เมธอด append()
pgm_langs.append('Java') print(pgm_langs) # Output: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript', 'Java']
เพิ่ม Iterable ด้วย Extend()
คุณรู้ว่าคุณสามารถใช้วิธีการผนวก () เพื่อเพิ่มรายการเดียว แต่ถ้าคุณต้องการเพิ่มมากกว่าหนึ่งรายการในรายการที่มีอยู่ เช่น รายการของรายการล่ะ วิธีการขยาย () ให้ไวยากรณ์ที่กระชับที่จะทำ
มาเพิ่มองค์ประกอบของรายการ more_langs ไปยังรายการ pgm_langs โดยใช้วิธีขยาย ()
more_langs = ['C++','C#','C'] pgm_langs.extend(more_langs) print(pgm_langs) # Output: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript', 'Java', 'C++', 'C#', 'C']
คุณสามารถวนซ้ำรายการของรายการและใช้ append() วิธีการเพิ่มทีละรายการ อย่างไรก็ตามนี่เป็นรายละเอียด และสะดวกกว่าที่จะใช้วิธีขยาย () แทน
for lang in more_langs: pgm_langs.append(lang)
ย้อนกลับรายการด้วยรายการย้อนกลับ ()
หากต้องการกลับลำดับขององค์ประกอบในรายการ คุณสามารถเรียกใช้เมธอด reverse()
เราเห็นว่ารายการ pgm_langs ถูกกลับรายการแล้ว
pgm_langs.reverse() print(pgm_langs) # Output: ['C', 'C#', 'C++', 'Java', 'JavaScript', 'Rust', 'Go', 'Scala', 'Python']
จัดเรียงรายการด้วย sort()
คุณสามารถเรียงลำดับรายการ Python ได้โดยใช้วิธี sort() เนื่องจาก pgm_langs เป็นรายการของสตริง เราจึงเห็นว่าการเรียงลำดับเกิดขึ้นตามลำดับตัวอักษร
pgm_langs.sort() print(pgm_langs) # Output: ['C', 'C#', 'C++', 'Go', 'Java', 'JavaScript', 'Python', 'Rust', 'Scala']
หากต้องการเรียงลำดับรายการตามลำดับตัวอักษรแบบย้อนกลับ คุณสามารถตั้งค่าพารามิเตอร์ย้อนกลับเป็น True ในการเรียกเมธอด sort()
pgm_langs.sort(reverse=True) print(pgm_langs) # Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']
เรียนรู้เพิ่มเติมเกี่ยวกับการเรียงลำดับรายการ Python
ทำสำเนาตื้นด้วยการคัดลอก ()
บางครั้งการแก้ไขสำเนาของรายการต้นฉบับอาจเป็นประโยชน์ในบางครั้ง แทนที่จะแก้ไขรายการต้นฉบับเอง รายการเมธอด copy() ส่งคืนสำเนาตื้นของรายการ Python
ให้เราสร้างสำเนาตื้นๆ ของรายการ pgm_langs และเรียกมันว่า pgm_langs_copy และเราตั้งค่าองค์ประกอบแรกในรายการเป็น ‘Haskell’ และพิมพ์ออกมา
pgm_langs_copy = pgm_langs.copy() pgm_langs_copy[0]='Haskell'
print(pgm_langs_copy) # Output: ['Haskell', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']
อย่างไรก็ตาม เราเห็นว่ารายการ pgm_langs ไม่มีการแก้ไข ดังนั้นการสร้างสำเนาตื้นและแก้ไขจะไม่ทำให้รายการต้นฉบับเปลี่ยนไป
print(pgm_langs) # Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']
รับจำนวนรายการด้วยการนับ ()
บางครั้ง การทราบจำนวนครั้งที่องค์ประกอบใดรายการหนึ่งเกิดขึ้นในรายการก็เป็นประโยชน์ วิธีการนับ () ส่งกลับจำนวนครั้งที่องค์ประกอบเกิดขึ้นในรายการ
ในรายการ pgm_langs องค์ประกอบทั้งหมดจะเกิดขึ้นเพียงครั้งเดียว ดังนั้นเมื่อเราพยายามนับจำนวน ‘ไป’ เราจะได้ 1 ซึ่งถูกต้อง
print(pgm_langs.count('Go')) # Output: 1
การใช้เมธอด count() เป็นหนึ่งในวิธีลบรายการที่ซ้ำออกจากรายการ Python
รับดัชนีของรายการด้วย index()
หากต้องการค้นหาดัชนีของรายการในรายการ Python คุณสามารถใช้เมธอด index() สมมติว่าเราต้องการค้นหาดัชนีของ ‘C#’ ในรายการ pgm_langs เราสามารถใช้คำสั่ง assert เพื่อตรวจสอบว่าองค์ประกอบที่ดัชนี 7 คือ ‘C#’
print(pgm_langs.index('C#')) # Output: 7 assert pgm_langs[7] == 'C#'
ลบรายการที่ดัชนีด้วย pop()
ตอนนี้ มาดูเมธอด list method เพื่อลบอิลิเมนต์ออกจากลิสต์ Python เมธอด pop() ใช้เพื่อลบและส่งคืนองค์ประกอบที่ดัชนีเฉพาะ จากตัวอย่างโค้ดก่อนหน้านี้ เราทราบว่า ‘C#’ เป็นภาษาที่ดัชนี 7
เมื่อเราเรียกเมธอด pop() ในลิสต์ pgm_langs ที่มี 7 เป็นดัชนี เราจะเห็นว่าเมธอดส่งคืน ‘C#’ ซึ่งเป็นอิลิเมนต์ที่ดัชนี 7 และมันยังลบออกจากลิสต์ด้วย
print(pgm_langs.pop(7)) # Output: 'C#' print(pgm_langs) # Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C']
ดังนั้นเมธอด pop() จะลบและส่งคืนองค์ประกอบที่ดัชนีที่ระบุ อย่างไรก็ตาม การระบุดัชนีเป็นทางเลือก เมื่อคุณไม่ระบุดัชนี เมธอด pop() จะลบและส่งคืนองค์ประกอบสุดท้ายในรายการ Python ดังที่แสดง:
print(pgm_langs.pop()) # Output: 'C' print(pgm_langs) # Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++']
ลบรายการด้วย remove()
บางครั้ง คุณอาจทราบองค์ประกอบที่จะลบ แต่ไม่ใช่ดัชนี ในกรณีนี้ คุณสามารถใช้เมธอด remove() ซึ่งรับองค์ประกอบเพื่อลบและลบออก ลองลบ ‘Java’ ออกจากรายการ pgm_langs โดยใช้เมธอด remove() ดังที่แสดง
pgm_langs.remove('Java') print(pgm_langs) # Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Go', 'C++']
ลบรายการทั้งหมดด้วย clear()
ถ้าคุณต้องการลบรายการทั้งหมดออกจากรายการ Python ล่ะ คุณสามารถวนซ้ำรายการและลบแต่ละองค์ประกอบโดยใช้วิธีการลบ () ดังนี้:
for lang in pgm_langs: pgm_langs.remove(lang)
แต่มีวิธีที่ดีกว่านี้ไหม? ใช่ โดยใช้วิธี clear() เราเห็นว่าการเรียกใช้เมธอด clear ในรายการ pgm_langs จะลบองค์ประกอบทั้งหมด และตอนนี้ pgm_langs เป็นรายการที่ว่างเปล่า
pgm_langs.clear() print(pgm_langs) # Output: []
บทสรุปของวิธีการรายการ Python
มาสรุปเมธอดรายการต่างๆ และไวยากรณ์อย่างรวดเร็ว:
List MethodSyntaxDescriptioninsert()list1.insert(index, elt)Inserts elt at index in list1append()list1.append(elt)เพิ่ม elt ที่ส่วนท้ายของ list1extend()list1.extend(list2) เพิ่มองค์ประกอบจาก list2 ไปยังจุดสิ้นสุดของ list1sort ()list1.sort()เรียงลำดับรายการใน placereverse()list1.reverse()ย้อนกลับ list1 ใน placecopy()list1.copy()ส่งคืนสำเนาตื้นของ list1count()list1.count(elt)ส่งคืนจำนวน elt ใน list1index()list1.index(elt)ส่งคืนดัชนีของ elt ใน list1pop()list1.pop(index) ลบ elt ที่ดัชนีและส่งกลับ remove()list1.remove(elt)ลบ elt ออกจาก list1clear()list1.clear() ลบองค์ประกอบทั้งหมดออกจาก list1
บทสรุป
ฉันหวังว่าบทช่วยสอนนี้จะช่วยให้คุณเข้าใจวิธีใช้เมธอดรายการที่พบบ่อยที่สุดใน Python ในขั้นตอนถัดไป เรียนรู้เกี่ยวกับทูเพิลของ Python และความแตกต่างระหว่างลิสต์และทูเพิลใน Python
หากคุณกำลังเรียนรู้ Python คุณสามารถดูรายการทรัพยากรการเรียนรู้ที่เป็นมิตรกับผู้เริ่มต้น