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

پیش‌بینی key در مرتب‌سازی پایتون؛ ترتیب بر اساس طول

مرتب‌سازی سفارشی پایتون؛ key و ترتیب پایدار · 0٪

✍️ پارامتر key می‌گوید از هر عضو چه ویژگی‌ای را برای مقایسه برداریم. خود عضو عوض نمی‌شود؛ فقط کلید مقایسه از آن استخراج می‌شود. مثلاً key=len رشته‌ها را بر اساس طول مرتب می‌کند و خروجی همچنان رشته است، نه عدد طول‌ها. برای رکوردها هم می‌توانیم یک فیلد را به عنوان کلید انتخاب کنیم.

در نمونه ['آبی', 'زر', 'بنفش'] ترتیب طولی از کوتاه‌تر به بلندتر است. حالا به این مثال ساده با حروف لاتین نگاه کن تا شمارش نویسه‌ها روشن باشد:

names = ['Mina', 'Ali', 'Nima', 'Bo']
result = sorted(names, key=len)
print(result)

طول‌ها به ترتیب چهار، سه، چهار و دو هستند. وقتی دو کلید برابرند، sorted در پایتون ترتیب قبلی آن اعضا را حفظ می‌کند؛ به این ویژگی پایداری می‌گیم. پس برای دو نام چهارحرفی نباید خودمان ترتیب الفبایی اضافه کنیم، مگر قرارداد جداگانه‌ای آن را بخواهد.

خطای رایج، خواندن key=len به شکل «ابتدا فهرست را به طول‌ها تبدیل کن» یا حدس زدن تساوی با الفباست. هر دو جواب خروجی متفاوتی می‌سازند. ابتدا کلید هر عضو را کنارش یادداشت کن و سپس با حفظ ترتیب موارد مساوی، اعضای اصلی را بچین.

فعالیت شما

خروجی sorted(names,key=len) را انتخاب کن؛ اعضا رشته باقی می‌مانند و طول برابر ترتیب ورودی را حفظ می‌کند.

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

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

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

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

گزینه‌های پیش‌بینی خروجی

  1. ['Bo', 'Ali', 'Mina', 'Nima']
  2. ['Bo', 'Ali', 'Nima', 'Mina']
  3. [2, 3, 4, 4]