วิธีเชื่อมต่อรายการใน Python

Withi Cheuxm Tx Raykar Ni Python



รายการ Python เป็นโครงสร้างข้อมูลที่หลากหลายและใช้กันอย่างแพร่หลาย ซึ่งช่วยให้จัดเก็บและจัดการคอลเลกชันของรายการได้ การดำเนินการทั่วไปอย่างหนึ่งเมื่อทำงานกับรายการคือการต่อข้อมูลซึ่งเกี่ยวข้องกับการรวมสองรายการขึ้นไปเพื่อสร้างรายการใหม่ กระบวนการนี้มีประโยชน์อย่างยิ่งเมื่อรวมข้อมูลหรือสร้างรายการที่ใหญ่กว่าจากรายการที่เล็กกว่า การต่อรายการสามารถทำได้โดยใช้วิธีการต่างๆ และการทำความเข้าใจเทคนิคเหล่านี้เป็นพื้นฐานในการทำงานกับรายการใน Python อย่างมีประสิทธิภาพ ไม่ว่าคุณกำลังรวมรายการตัวเลข สตริง หรือวัตถุที่ซับซ้อน การเรียนรู้การต่อข้อมูลรายการจะช่วยให้คุณจัดการและจัดระเบียบข้อมูลได้หลากหลายวิธี

ตัวอย่างที่ 1: การเชื่อมโยงรายการด้วยตัวดำเนินการ “+”

เราสามารถใช้ตัวดำเนินการ “+” ใน Python เพื่อเชื่อมรายการเข้าด้วยกัน เมื่อใช้ตัวดำเนินการ “+” คุณสามารถรวมสองรายการขึ้นไปเพื่อสร้างรายการใหม่ได้ เมื่อคุณใช้ตัวดำเนินการ “+” กับรายการ รายการใหม่จะถูกสร้างขึ้น และองค์ประกอบของรายการเดิมจะถูกคัดลอกไปยังรายการใหม่ตามลำดับที่ปรากฏ

นี่เป็นตัวอย่างง่ายๆ:







แผ่นที่ 1 = [ 1 , 2 , 3 ]

รายการ2 = [ 4 , 5 , 6 ]

result_list = รายการ 1 + รายการ 2

พิมพ์ ( result_list )

เรามีสองรายการในภาพประกอบนี้: “list1” และ “list2” เราใช้ตัวดำเนินการ “+” เพื่อรวมไว้ในรายการเดียว เมื่อใช้กับรายการ ตัวดำเนินการ “+” จะเชื่อมรายการเหล่านั้นเข้าด้วยกัน ซึ่งหมายความว่าจะรวมองค์ประกอบของรายการที่สองเข้ากับจุดสิ้นสุดของรายการแรก ดังนั้น หลังจากดำเนินการ 'result_list = list1 + list2' แล้ว 'result_list' จะมีองค์ประกอบของทั้ง 'list1' และ 'list2' ตามลำดับที่ต่อกัน





แม้ว่าวิธีนี้จะกระชับ แต่โปรดจำไว้ว่าวิธีนี้จะสร้างรายการใหม่ซึ่งอาจไม่มีประสิทธิภาพสำหรับรายการขนาดใหญ่เนื่องจากมีค่าใช้จ่ายสูงในการสร้างสำเนา





ตัวอย่างที่ 2: การใช้วิธีขยาย ()

รายการของ iterable สามารถต่อท้ายรายการที่มีอยู่ได้โดยใช้วิธีขยาย () โดยจะแก้ไขรายการเดิม ซึ่งแตกต่างจากตัวดำเนินการ “+” ที่สร้างรายการใหม่

สมมติว่าเรามีรายชื่อนักเรียนในชั้นเรียน และเราต้องการขยายรายชื่อนี้โดยการเพิ่มชื่อของนักเรียนใหม่ที่เพิ่งเข้าร่วมโดยใช้เมธอด extension() ต่อไปนี้คือวิธีดำเนินการ:



class_students = [ 'อลิซ' , 'เบลล่า' , 'ชาร์ลี' ]

ใหม่_นักเรียน = [ 'เดวิด' , 'เอวา' , 'อดัม' ]

class_students ขยาย ( ใหม่_นักเรียน )

พิมพ์ ( 'อัพเดทรายชื่อนักเรียน:' , class_students )

ในตัวอย่างนี้ รายการเดิมซึ่งก็คือ 'class_students' ประกอบด้วยชื่อของนักเรียนที่มีอยู่ รายชื่อ 'new_students' ประกอบด้วยชื่อของนักเรียนที่เพิ่งเข้าร่วมชั้นเรียน ด้วยการใช้วิธีการขยาย () เราจะเพิ่มชื่อของนักเรียนใหม่ไว้ที่ส่วนท้ายของรายการเดิม

ตัวอย่างที่ 3: การใช้ตัวดำเนินการ “+=” สำหรับการต่อข้อมูล

ตัวดำเนินการ “+=” เป็นตัวย่อสำหรับวิธีการขยาย () โดยจะแก้ไขรายการโดยรวมองค์ประกอบของรายการทางขวาเข้ากับรายการทางซ้าย

สมมติว่าเรามีรายการสีโปรดและเราต้องการอัปเดตโดยเพิ่มสีเพิ่มเติมโดยใช้โอเปอเรเตอร์ “+=”

ที่ชื่นชอบ_สี = [ 'สีฟ้า' , 'สีเขียว' , 'สีแดง' ]

เพิ่มเติม_สี = [ 'สีม่วง' , 'ส้ม' , 'สีเหลือง' ]

ที่ชื่นชอบ_สี + = เพิ่มเติม_สี

พิมพ์ ( 'อัปเดตสีโปรด:' , ที่ชื่นชอบ_สี )

ในสถานการณ์นี้ เราเริ่มต้นด้วยรายการสีที่เราชื่นชอบซึ่งแสดงด้วย “favorite_colors” จากนั้น เราก็มีสีใหม่บางส่วนที่เราต้องการรวมไว้ในรายการ 'สีเพิ่มเติม' ด้วยการใช้ตัวดำเนินการ “+=” เราจะรวมสีใหม่เข้ากับสีโปรดที่มีอยู่ของเรา โดยแก้ไขรายการ “favorite_colors”

หลังการดำเนินการ เมื่อเราพิมพ์ “สีโปรดที่อัปเดตของเรา” เราจะเห็นผลลัพธ์ดังต่อไปนี้:

ตัวอย่างที่ 4: การใช้ตัวดำเนินการ “*”

ตัวดำเนินการ “*” สามารถใช้สำหรับการจำลองแบบรายการได้ แต่เมื่อนำไปใช้กับรายการ ก็สามารถเชื่อมโยงรายการเหล่านั้นเข้าด้วยกันได้โดยการทำซ้ำองค์ประกอบต่างๆ

นี่คือตัวอย่าง:

ต้นฉบับ_รายการ = [ 1 , 2 , 3 ]

ต่อกัน_list = ต้นฉบับ_รายการ * 3

พิมพ์ ( ต่อกัน_list )

ในกรณีนี้ เราเริ่มต้นด้วย 'รายการต้นฉบับ' ที่มีองค์ประกอบ [1, 2, 3] เมื่อใช้ตัวดำเนินการ “*” เราสร้างรายการใหม่ซึ่งเป็น “concatenated_list” ที่ประกอบด้วยองค์ประกอบซ้ำสามครั้งจากรายการเดิม

แม้ว่าแนวทางนี้จะพบได้น้อยกว่าสำหรับการต่อข้อมูล แต่ก็แสดงให้เห็นถึงความยืดหยุ่นของตัวดำเนินการของ Python

ตัวอย่างที่ 5: การใช้ฟังก์ชัน Itertools.chain()

ฟังก์ชัน itertools.chain() เป็นส่วนหนึ่งของโมดูล “itertools” และใช้เพื่อเชื่อมสิ่งที่ทำซ้ำได้ (เช่น รายการ สิ่งอันดับ หรืออ็อบเจ็กต์ที่สามารถทำซ้ำได้อื่นๆ) ให้เป็น “iterable” เดียว ไม่เหมือนกับวิธีการต่อข้อมูลอื่นๆ บางอย่าง itertools.chain() จะไม่สร้างรายการใหม่ แต่จะสร้างตัววนซ้ำเหนือองค์ประกอบของอินพุตที่ทำซ้ำได้

จาก itertools นำเข้า โซ่

L1 = [ 1 , 2 , 3 ]

L2 = [ 'เอ็กซ์' , 'และ' , 'กับ' ]

ต่อกัน_iterable = โซ่ ( L1 , L2 )

result_list = รายการ ( ต่อกัน_iterable )

พิมพ์ ( result_list )

ในตัวอย่างที่กำหนด เรามีสองรายการ - “L1” มีค่าตัวเลข [1, 2, 3] และ “L2” มีอักขระตัวอักษร [“x”, “y”, “z”] การใช้ฟังก์ชัน itertools.chain() เราเชื่อมรายการเหล่านี้เข้าด้วยกันเป็นรายการเดียวที่สามารถทำซ้ำได้ ซึ่งแสดงด้วย 'concatenated_iterable' จากนั้นใช้ฟังก์ชัน list() เพื่อแปลง iterable ให้เป็นรายการซึ่งส่งผลให้เกิดรายการรวม [1, 2, 3, “x”, “y”, “z”]

ตัวอย่างที่ 6: การแบ่งส่วนรายการ

การแบ่งส่วนรายการเป็นเทคนิคที่ช่วยให้เราสามารถดึงข้อมูลชุดย่อยของรายการได้ด้วยการระบุช่วงของดัชนี โดยเกี่ยวข้องกับการใช้ตัวดำเนินการโคลอน (:) ภายในวงเล็บเหลี่ยมเพื่อระบุจุดเริ่มต้น หยุด และค่าขั้นตอน (ไม่บังคับ)

นี่คือโค้ดตัวอย่าง:

จริง_รายการ = [ 1 , 2 , 3 , 4 , 5 ]

หั่นบาง ๆ_list = จริง_รายการ [ 1 : : 4 ]

พิมพ์ ( หั่นบาง ๆ_list )

เราเริ่มต้นภาพประกอบด้วยรายการตัวเลขดั้งเดิมซึ่งระบุว่าเป็น “actual_list” ซึ่งมีองค์ประกอบ [1, 2, 3, 4, 5] เราแยกส่วนเฉพาะของรายการโดยใช้การแบ่งส่วนรายการซึ่งเป็นคุณสมบัติที่ทรงพลังใน Python ชิ้น “actual_list[1:4]” ถูกใช้ในกรณีนี้ และจะเลือกองค์ประกอบจากดัชนี 1 ถึงดัชนี 3 (แต่ไม่ใช่จากดัชนี 4) ผลลัพธ์คือรายการใหม่ชื่อ 'sliced_list' ซึ่งมีส่วนที่หั่น [2, 3, 4]

ตัวอย่างที่ 7: การต่อข้อมูลด้วยฟังก์ชัน Zip()

ฟังก์ชัน zip() รวมองค์ประกอบจากหลาย ๆ ที่สามารถทำซ้ำได้ สร้างคู่หรือสิ่งอันดับขององค์ประกอบที่เกี่ยวข้อง องค์ประกอบของการวนซ้ำแต่ละครั้งในดัชนีเดียวกันจะใช้เพื่อสร้างคู่เหล่านี้

นักเรียน = [ 'อลิซ' , 'บ๊อบ' , 'ชาร์ลี' ]

เกรด = [ 85 , 92 , 78 ]

นักเรียน_เกรด_คู่ = ซิป ( นักเรียน , เกรด )

result_dict = คำสั่ง ( นักเรียน_เกรด_คู่ )

พิมพ์ ( 'คู่เกรดนักเรียน:' , result_dict )

ในตัวอย่างนี้ ฟังก์ชัน zip() จะจับคู่ชื่อนักเรียนจากรายการ 'นักเรียน' กับเกรดที่สอดคล้องกันจากรายการ 'เกรด' ซึ่งส่งผลให้มีพจนานุกรมที่นักเรียนแต่ละคนเชื่อมโยงกับเกรดของตน

บทสรุป

โดยสรุป Python มีหลายวิธีในการเชื่อมโยงรายการเข้าด้วยกัน แต่ละวิธีก็มีข้อดีของมัน ขณะที่เราสำรวจวิธีการต่างๆ ตั้งแต่ตัวดำเนินการ “+” ที่ตรงไปตรงมาไปจนถึงฟังก์ชัน zip() ที่เหมาะสมยิ่งขึ้น ก็เห็นได้ชัดว่า Python รองรับสไตล์และความชอบในการเขียนโปรแกรมที่หลากหลาย ขึ้นอยู่กับงานที่ทำอยู่ ปัจจัยต่างๆ เช่น ความสามารถในการอ่าน ประสิทธิภาพของหน่วยความจำ และประเภทของข้อมูลที่กำลังประมวลผลจะเป็นตัวกำหนดว่าวิธีใดดีที่สุด