เมื่อคุณระบุa
ทางด้านซ้ายของตัว=
ดำเนินการคุณกำลังใช้การกำหนดปกติของ Python ซึ่งจะเปลี่ยนชื่อa
ในบริบทปัจจุบันเพื่อชี้ไปที่ค่าใหม่ สิ่งนี้ไม่เปลี่ยนค่าก่อนหน้าซึ่งa
ชี้ไป
โดยระบุa[0:2]
บนด้านซ้ายของ=
ผู้ประกอบการที่คุณจะบอกหลามคุณต้องการใช้การกำหนด Slice Slice Assignment เป็นไวยากรณ์พิเศษสำหรับรายการที่คุณสามารถแทรกลบหรือแทนที่เนื้อหาจากรายการ:
การแทรก :
>>> a = [1, 2, 3]
>>> a[0:0] = [-3, -2, -1, 0]
>>> a
[-3, -2, -1, 0, 1, 2, 3]
การลบ :
>>> a
[-3, -2, -1, 0, 1, 2, 3]
>>> a[2:4] = []
>>> a
[-3, -2, 1, 2, 3]
ทดแทน :
>>> a
[-3, -2, 1, 2, 3]
>>> a[:] = [1, 2, 3]
>>> a
[1, 2, 3]
บันทึก:
ความยาวของชิ้นงานอาจแตกต่างจากความยาวของลำดับที่กำหนดดังนั้นการเปลี่ยนความยาวของลำดับเป้าหมายหากลำดับเป้าหมายอนุญาต - แหล่งที่มา
การกำหนด Slice ให้ฟังก์ชั่นที่คล้ายกับTuple แกะกล่อง ตัวอย่างเช่นa[0:1] = [4, 5]
เทียบเท่ากับ:
a[0], a[1] = [4, 5]
ด้วย Tuple Unpacking คุณสามารถแก้ไขรายการที่ไม่ใช่ลำดับได้:
>>> a
[4, 5, 3]
>>> a[-1], a[0] = [7, 3]
>>> a
[3, 5, 7]
อย่างไรก็ตามการแกะกล่องทูเพิลนั้น จำกัด เฉพาะการเปลี่ยนเนื่องจากคุณไม่สามารถแทรกหรือลบองค์ประกอบได้
ก่อนและหลังการดำเนินการทั้งหมดนี้a
เป็นรายการเดียวกัน Python เพียงแค่ให้น้ำตาลที่ดีในการปรับเปลี่ยนรายการในสถานที่