ถ้าตัวแปรสองตัวมีชนิดข้อมูลเดียวกันและไม่ใช่ Iterator เช่น List และ Dictionary ฯลฆ นิพจน์ a += b จะเหมือนกับ a = a + b ให้ผลลัพธ์เดียวกัน แต่เมื่อมี Iterator ปรากฏ เราไม่สามารถคาดหวังผลลัพธ์เดียวกันได้เสมอไป ด้านล่างคือหนึ่งในสถานการณ์นั้น
กรณี a = a + b
ที่นี่เราเห็นว่าเมื่อเราใช้งานนิพจน์กับ List และ String คาดหวังว่าจะรวมกัน เราจะได้ Error กลับมา
ตัวอย่าง
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 เราจะเห็นว่า String ถูกแปลงเป็นชุดของ Elements โดยอัตโนมัติ เพื่อเป็นส่วนหนึ่งของ List
ตัวอย่าง
z_list = [1,2,3] x ='Hello' z_list += x print(z_list)
ผลลัพธ์
การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ −
[1, 2, 3, 'H', 'e', 'l', 'l', 'o']