حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
آموزش برنامه‌نویسی با پایتون؛ قسمت دوم: حل مسئله

کپی و مرتب‌سازی لیست در پایتون؛ تفاوت sort و sorted

۳. لیست در پایتون؛ کپی، حذف و مرتب‌سازی · 0٪

فهرست تغییرپذیر هست. با other = numbers فهرست تازه نمی‌سازیم؛ دو نام به همون فهرست اشاره می‌کنن. برش numbers[:] یک لیست تازه می‌سازه، ولی از داده‌های داخلش کپی جداگانه نمی‌گیره؛ به این روش «کپی سطحی» می‌گن؛ برای فهرست سادهٔ عددها، تغییر خانه‌های کپی به اصل آسیب نمی‌زند.

numbers = [3, 1, 2]
alias = numbers
copy = numbers[:]
alias.append(4)
copy[0] = 99
print(numbers)
print(copy)
values = [3, 1, 2]
ordered = sorted(values)
result = values.sort()
print(ordered)
print(values)
print(result)
removed = values.pop()
values.remove(1)
print(removed)
print(values)

دو خط اول خروجی [3, 1, 2, 4] و [99, 1, 2] هستن. کپی سطحی برای فهرست‌های تو در تو، فهرست‌های داخلی رو دوباره نمی‌سازد؛ در اون مسئله باید دربارهٔ عمق کپی فکر کنیم.

sorted فهرست تازه و مرتب برمی‌گردونه. sort خود فهرست رو تغییر می‌ده و مقدار بازگشتی اون None هست. پس result اینجا فهرست نیست!

remove(value) اولین مورد یک مقدار رو حذف می‌کنه و اگه نباشد ValueError می‌ده. pop(index) عضو یک خانه رو حذف و همون عضو رو برمی‌گردونه؛ بدون اندیس، عضو آخر رو انتخاب می‌کنه. pop روی فهرست خالی مجاز نیست. در انتهای مثال، removed برابر ۳ و values برابر [2] هست.

انتخاب ابزار به خواستهٔ مسئله بستگی داره: آیا اجازه داری ورودی رو تغییر بدهی؟ آیا مقدار حذف‌شده رو لازم داری؟

فعالیت شما

اثر alias، کپی، sort، sorted، remove و pop رو از هم تشخیص بده.

مطالعهٔ این گام برای همه آزاد است

برای پاسخ‌دادن، بررسی پاسخ، ثبت پیشرفت و استفاده از دستیار باید شرایط شرکت در فعالیت‌ها را داشته باشید.

برای انجام فعالیت وارد شوید

برای انجام فعالیت‌ها ابتدا این دوره‌های پیش‌نیاز را تکمیل کنید: