หากตัวแปรสองตัวเป็นประเภทข้อมูลเดียวกันและไม่ใช่ตัววนซ้ำ เช่น รายการและพจนานุกรม เป็นต้น ดังนั้นนิพจน์ a +=b จะเหมือนกับ a =+b จะให้ผลลัพธ์เหมือนกัน แต่เมื่อ n iterator เข้ามาเกี่ยวข้อง เราไม่สามารถคาดหวังสิ่งเดียวกันได้เสมอไป ด้านล่างนี้เป็นหนึ่งในสถานการณ์ดังกล่าว
กรณีของ a =a +b
ในที่นี้ เราจะเห็นได้ว่าเมื่อเรานำนิพจน์ไปใช้กับรายการและสตริงที่คาดว่าจะรวมเข้าด้วยกัน เราได้รับข้อผิดพลาดกลับมา
ตัวอย่าง
x ='Hello ' z_list = [1,2,3] z_list = z_list + x print(z_list)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Traceback (most recent call last): File "C:\Users\Pradeep\AppData\Roaming\JetBrains\PyCharmCE2020.3\scratches\scratch.py", line 11, in z_list = z_list + x TypeError: can only concatenate list (not "str") to list
กรณีของ a +=b
แต่เมื่อเราใช้นิพจน์ a +=b เราจะเห็นว่า sting ถูกแปลงเป็นชุดของ elemnst โดยปริยาย เพื่อให้เป็นส่วนหนึ่งของรายการ
ตัวอย่าง
z_list = [1,2,3] x ='Hello' z_list += x print(z_list)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
[1, 2, 3, 'H', 'e', 'l', 'l', 'o']