รับสองรายการ:
x = [1,2,3]
y = [4,5,6]
ไวยากรณ์คืออะไร:
- แทรก
xลงในแบบyที่yดูเหมือนตอนนี้[1, 2, 3, [4, 5, 6]]หรือไม่ - แทรกรายการทั้งหมดของ
xลงในแบบyที่yตอนนี้ดูเหมือนว่า[1, 2, 3, 4, 5, 6]?
listA.insert(pos, x) for x in listB[::-1]อะไร
รับสองรายการ:
x = [1,2,3]
y = [4,5,6]
ไวยากรณ์คืออะไร:
xลงในแบบyที่yดูเหมือนตอนนี้[1, 2, 3, [4, 5, 6]]หรือไม่xลงในแบบyที่yตอนนี้ดูเหมือนว่า[1, 2, 3, 4, 5, 6]?listA.insert(pos, x) for x in listB[::-1]อะไร
คำตอบ:
คุณหมายถึงappendอะไร
>>> x = [1,2,3]
>>> y = [4,5,6]
>>> x.append(y)
>>> x
[1, 2, 3, [4, 5, 6]]
หรือผสาน?
>>> x = [1,2,3]
>>> y = [4,5,6]
>>> x + y
[1, 2, 3, 4, 5, 6]
>>> x.extend(y)
>>> x
[1, 2, 3, 4, 5, 6]
x.extend(y)อยู่ในสถานที่x+yกำลังส่งคืนรายการใหม่ และx += yซึ่งไม่ได้กล่าวถึงที่นี่คล้ายกับการขยาย
คำถามไม่ชัดเจนว่าคุณต้องการบรรลุอะไร
รายการมีappendเมธอดซึ่งผนวกอาร์กิวเมนต์เข้ากับรายการ:
>>> list_one = [1,2,3]
>>> list_two = [4,5,6]
>>> list_one.append(list_two)
>>> list_one
[1, 2, 3, [4, 5, 6]]
นอกจากนี้ยังมีextendวิธีการที่จะผนวกรายการจากรายการที่คุณส่งเป็นอาร์กิวเมนต์:
>>> list_one = [1,2,3]
>>> list_two = [4,5,6]
>>> list_one.extend(list_two)
>>> list_one
[1, 2, 3, 4, 5, 6]
และแน่นอนว่ามีinsertวิธีการที่คล้ายกันappendแต่อนุญาตให้คุณระบุจุดแทรก:
>>> list_one.insert(2, list_two)
>>> list_one
[1, 2, [4, 5, 6], 3, 4, 5, 6]
หากต้องการขยายรายการที่จุดแทรกเฉพาะคุณสามารถใช้การแบ่งส่วนรายการ (ขอบคุณ @florisla):
>>> l = [1, 2, 3, 4, 5]
>>> l[2:2] = ['a', 'b', 'c']
>>> l
[1, 2, 'a', 'b', 'c', 3, 4, 5]
การแบ่งส่วนรายการค่อนข้างยืดหยุ่นเนื่องจากช่วยให้สามารถแทนที่ช่วงของรายการในรายการด้วยช่วงของรายการจากรายการอื่น:
>>> l = [1, 2, 3, 4, 5]
>>> l[2:4] = ['a', 'b', 'c'][1:3]
>>> l
[1, 2, 'b', 'c', 5]
foo = [1, 2, 3]
bar = [4, 5, 6]
foo.append(bar) --> [1, 2, 3, [4, 5, 6]]
foo.extend(bar) --> [1, 2, 3, 4, 5, 6]
[1,2,4,5,6,3]
คุณยังสามารถทำ ...
x += y
x + yและx += yเป็นสิ่งเดียวกัน แต่มีอยู่ในสถานที่
ถ้าคุณต้องการที่จะเพิ่มองค์ประกอบในรายการ (list2) ที่ส่วนท้ายของรายการอื่น ๆ (รายการ) จากนั้นคุณสามารถใช้วิธีการขยายรายการ
list = [1, 2, 3]
list2 = [4, 5, 6]
list.extend(list2)
print list
[1, 2, 3, 4, 5, 6]
หรือถ้าคุณต้องการเชื่อมสองรายการเข้าด้วยกันคุณสามารถใช้เครื่องหมาย +
list3 = list + list2
print list3
[1, 2, 3, 4, 5, 6]
หากเราทำเช่นx.append(y)นั้น y จะได้รับการอ้างอิงเป็น x เช่นนั้นการเปลี่ยนแปลงใด ๆ ที่ทำกับ y จะส่งผลต่อการผนวก x เช่นกัน ดังนั้นหากเราต้องการแทรกเฉพาะองค์ประกอบเราควรทำดังต่อไปนี้:
x = [1,2,3]
y = [4,5,6]
x.append(y[:])