Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เมธอด copy() ของ Set ใน Python

ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับเมธอด copy ของโครงสร้างข้อมูล set มาดูรายละเอียด

เมธอด copy ใช้สำหรับสร้าง shallow copy (คัดลอกตื้น) ของ set

ลองดูตัวอย่างต่างๆ เพื่อเข้าใจ normal copy (การกำหนดค่า) และ shallow copy ของ set

Normal Copy (การกำหนดค่าปกติ)

ทำตามขั้นตอนและดูผลลัพธ์

  • เริ่มต้น set
  • กำหนด set ให้ตัวแปรอีกตัวด้วย assignment operator
  • เพิ่มสมาชิกใหม่เข้า set ที่ copy
  • พิมพ์ทั้งสอง set

คุณจะไม่พบความแตกต่าง Assignment operator คืนค่า reference ทั้งสอง set ชี้ไปยัง object เดียวในหน่วยความจำ การเปลี่ยนแปลงอะไรก็จะสะท้อนในทั้งคู่

ตัวอย่าง

# เริ่มต้น set
number_set = {1, 2, 3, 4, 5}
# กำหนด set ให้ตัวแปรอื่น
number_set_copy = number_set
# เปลี่ยนค่า number_set_copy
number_set_copy.add(6)
# พิมพ์ทั้งสอง set
print(f"Set One: {number_set}")
print(f"Set Two: {number_set_copy}")

ผลลัพธ์

การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้

Set One: {1, 2, 3, 4, 5, 6}
Set Two: {1, 2, 3, 4, 5, 6}

เห็นได้ว่า set แรกเปลี่ยนไปตาม set ที่สอง เพราะชี้ object เดียวกัน

Shallow Copy ด้วย copy()

เราสามารถใช้ shallow copy คัดลอก set ได้หลายวิธี วิธีหนึ่งคือใช้เมธอด copy() ของ set

ตัวอย่าง

# เริ่มต้น set
number_set = {1, 2, 3, 4, 5}
# shallow copy ด้วย copy()
number_set_copy = number_set.copy()
# เปลี่ยนค่า number_set_copy
number_set_copy.add(6)
# พิมพ์ทั้งสอง set
print(f"Set One: {number_set}")
print(f"Set Two: {number_set_copy}")

ผลลัพธ์

การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้

Set One: {1, 2, 3, 4, 5}
Set Two: {1, 2, 3, 4, 5, 6}

ครั้งนี้ set แรกไม่เปลี่ยนแปลง เพราะ copy() สร้าง object ใหม่

สรุป

Assignment (=) คัดลอก reference, copy() สร้าง shallow copy object ใหม่ หากมีข้อสงสัย กรุณาแจ้งในส่วนความคิดเห็น