หากต้องการเพิ่มองค์ประกอบในรายการ (อาร์เรย์) ของประเภทรายการใน Python หรือรวมรายการอื่น ให้ใช้วิธีการรายการ append(), expand() และ insert() คุณยังสามารถใช้ตัวดำเนินการ + หรือสไลซ์ เพื่อระบุตำแหน่งและกำหนดตำแหน่งได้
ข้อมูลต่อไปนี้มีให้ที่นี่
- เพิ่มองค์ประกอบในตอนท้าย:
append()
- รวมรายการอื่นหรือทูเพิลในตอนท้าย (การต่อกัน):
extend()
,+
โอเปอเรเตอร์ - เพิ่ม (แทรก) องค์ประกอบในตำแหน่งที่ระบุ:
insert()
- เพิ่ม (แทรก) รายการอื่นหรือทูเพิลที่ตำแหน่งที่ระบุ:ชิ้น
เพิ่มองค์ประกอบในตอนท้าย:append()
เมื่อใช้เมธอด append() ของรายการ คุณสามารถเพิ่มองค์ประกอบต่อท้าย (สุดท้าย) ได้ หากคุณต้องการเพิ่มไปยังตำแหน่งอื่นที่ไม่ใช่ส่วนท้าย เช่น ด้านบน ให้ใช้ insert() ตามที่อธิบายไว้ด้านล่าง
l = list(range(3))
print(l)
# [0, 1, 2]
l.append(100)
print(l)
# [0, 1, 2, 100]
l.append('new')
print(l)
# [0, 1, 2, 100, 'new']
รายการยังถูกเพิ่มเป็นองค์ประกอบเดียว พวกเขาไม่ได้รวมกัน
l.append([3, 4, 5])
print(l)
# [0, 1, 2, 100, 'new', [3, 4, 5]]
รวมรายการอื่นหรือทูเพิลในตอนท้าย (การต่อกัน):extend(),+โอเปอเรเตอร์
ด้วยเมธอด list expand() คุณสามารถรวมรายการอื่นหรือทูเพิลในตอนท้าย (ตอนท้าย) องค์ประกอบทั้งหมดจะถูกผนวกเข้ากับส่วนท้ายของรายการดั้งเดิม
l = list(range(3))
print(l)
# [0, 1, 2]
l.extend([100, 101, 102])
print(l)
# [0, 1, 2, 100, 101, 102]
l.extend((-1, -2, -3))
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3]
โปรดทราบว่าอักขระแต่ละตัว (องค์ประกอบ) จะถูกเพิ่มลงในสตริงทีละอักขระ
l.extend('new')
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w']
นอกจากนี้ยังสามารถเชื่อมต่อโดยใช้ตัวดำเนินการ + แทนวิธีขยาย ()
+ ตัวดำเนินการ รายการใหม่จะถูกส่งคืน+=
วิธีนี้จะช่วยให้คุณเพิ่มลงในรายการที่มีอยู่ได้
l2 = l + [5, 6, 7]
print(l2)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w', 5, 6, 7]
l += [5, 6, 7]
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w', 5, 6, 7]
เพิ่ม (แทรก) องค์ประกอบในตำแหน่งที่ระบุ:insert()
รายการวิธีการ insert() สามารถเพิ่ม (แทรก) องค์ประกอบในตำแหน่งที่ระบุ
อาร์กิวเมนต์แรกระบุตำแหน่ง และอาร์กิวเมนต์ที่สองระบุองค์ประกอบที่จะแทรก ตำแหน่งแรก (เริ่มต้น) คือ 0; สำหรับค่าลบ -1 คือตำแหน่งสุดท้าย (สุดท้าย)
l = list(range(3))
print(l)
# [0, 1, 2]
l.insert(0, 100)
print(l)
# [100, 0, 1, 2]
l.insert(-1, 200)
print(l)
# [100, 0, 1, 200, 2]
เช่นเดียวกับ append() รายการจะถูกเพิ่มเป็นองค์ประกอบเดียว มันจะไม่ถูกรวมเข้าด้วยกัน
l.insert(0, [-1, -2, -3])
print(l)
# [[-1, -2, -3], 100, 0, 1, 200, 2]
โปรดทราบว่าการ insert() ไม่ใช่การดำเนินการที่มีประสิทธิภาพ เนื่องจากต้องใช้ค่าใช้จ่ายดังต่อไปนี้ ดูหน้าต่อไปนี้บนวิกิอย่างเป็นทางการสำหรับความซับซ้อนในการคำนวณของการดำเนินการรายการต่างๆO(n)
O(1)
ประเภท deque มีให้ในโมดูลคอลเลกชันไลบรารีมาตรฐานเป็นประเภทเพื่อเพิ่มองค์ประกอบที่ด้านบนด้วยค่าใช้จ่ายนี้ ตัวอย่างเช่น หากคุณต้องการจัดการข้อมูลแบบคิว (FIFO) การใช้ deque จะมีประสิทธิภาพมากกว่า
เพิ่ม (แทรก) รายการอื่นหรือทูเพิลที่ตำแหน่งที่ระบุ:ชิ้น
หากคุณระบุช่วงด้วยสไลซ์และกำหนดรายการอื่นหรือทูเพิล องค์ประกอบทั้งหมดจะถูกเพิ่ม (แทรก)
l = list(range(3))
print(l)
# [0, 1, 2]
l[1:1] = [100, 200, 300]
print(l)
# [0, 100, 200, 300, 1, 2]
คุณยังสามารถแทนที่องค์ประกอบเดิมได้ องค์ประกอบทั้งหมดในช่วงที่ระบุจะถูกแทนที่
l = list(range(3))
print(l)
# [0, 1, 2]
l[1:2] = [100, 200, 300]
print(l)
# [0, 100, 200, 300, 2]