چالش روزانه · ۱۱ آبان ۱۴۰۵
چالش پایتون ۱۵: sort چه برمیگرداند؟
قبل از اجرای کد، خروجی آن را پیشبینی کن. حدس نزن؛ خط به خط فکر کن پایتون چه میکند.
L = [3, 1, 2]
x = L.sort()
print(x, L)نمایش پاسخ و توضیح
پاسخ درست: گزینهٔ ب — None [1, 2, 3]
گام به گام
L.sort() لیست را درجا (in-place) مرتب میکند. یعنی خود L عوض میشود و لیست تازهای ساخته نمیشود. متدهایی که شیء را درجا تغییر میدهند، در پایتون معمولاً None برمیگردانند.
L.sort() → L = [1, 2, 3]
x = None
جواب: None [1, 2, 3]
sort یا sorted؟
L.sort() |
sorted(L) |
|
|---|---|---|
| لیست اصلی | تغییر میکند | دست نمیخورد |
| خروجی | None |
لیست مرتبشدهٔ جدید |
اشتباه رایج: L = L.sort(). با این کار کل لیست را از دست میدهید و L میشود None. اگر نسخهٔ مرتبشده را جداگانه میخواهید، sorted(L) بنویسید. (درس متدهای لیست)
حالا خودت اجرا کن و تغییرش بده
L = [3, 1, 2]
x = L.sort()
print(x, L)