چالش روزانه · ۱۴ آبان ۱۴۰۵

چالش پایتون ۱۸: append یا extend؟

قبل از اجرای کد، خروجی آن را پیش‌بینی کن. حدس نزن؛ خط به خط فکر کن پایتون چه می‌کند.

L = [1, 2]
L.append([3, 4])
L.extend([5, 6])
print(len(L))
خروجی این کد چیست؟

نمایش پاسخ و توضیح

پاسخ درست: گزینهٔ ب — 5

گام به گام

  • append هر چیزی بگیرد را یک عنصر به ته لیست اضافه می‌کند. اگر لیست بدهید، خود لیست یک عنصر می‌شود.
  • extend عنصرهای ورودی را یکی‌یکی اضافه می‌کند.
[1, 2]
append([3, 4])  →  [1, 2, [3, 4]]
extend([5, 6])  →  [1, 2, [3, 4], 5, 6]

پنج عنصر: 1، 2، [3, 4]، 5، 6.

جواب: 5

دامی دیگر

L = [1, 2]
L.extend("ab")
print(L)   # [1, 2, 'a', 'b']

extend روی هر چیز پیمایش‌پذیری کار می‌کند. رشته هم حرف‌به‌حرف اضافه می‌شود. (درس لیست)

حالا خودت اجرا کن و تغییرش بده

L = [1, 2]
L.append([3, 4])
L.extend([5, 6])
print(len(L))