Python - Sort Lists

در پایتون، مرتب‌سازی لیست‌ها (Sort Lists) بسیار ساده است و چندین روش برای انجام آن وجود دارد.
در ادامه، تمام روش‌ها همراه با مثال توضیح داده شده‌اند:

🔹 1️⃣ متد ()sort

لیست را در جای خود (in-place) مرتب می‌کند و لیست اصلی تغییر می‌کند.

numbers = [5, 2, 9, 1, 7] numbers.sort() print(numbers) # [1, 2, 5, 7, 9]

🔹 مرتب‌سازی نزولی

numbers.sort(reverse=True) print(numbers) # [9, 7, 5, 2, 1]

🔹 2️⃣ مرتب‌سازی با کلید (key)

می‌توانید تابعی برای مرتب‌سازی مشخص کنید:

fruits = ["apple", "banana", "cherry", "kiwi"] # مرتب‌سازی بر اساس طول رشته fruits.sort(key=len) print(fruits) # ['kiwi', 'apple', 'banana', 'cherry']

key=str.lower → برای مرتب‌سازی بدون توجه به حروف بزرگ/کوچک

🔹 3️⃣ تابع ()sorted

لیست اصلی تغییر نمی‌کند و یک لیست جدید برمی‌گرداند.

numbers = [5, 2, 9, 1, 7] new_numbers = sorted(numbers) print(new_numbers) # [1, 2, 5, 7, 9] print(numbers) # [5, 2, 9, 1, 7] (لیست اصلی بدون تغییر)

🔹 مرتب‌سازی نزولی با ()sorted

new_numbers = sorted(numbers, reverse=True) print(new_numbers) # [9, 7, 5, 2, 1]

🔹 4️⃣ مرتب‌سازی لیست تو در تو

برای مرتب‌سازی بر اساس یک عنصر داخلی:

students = [("Ali", 25), ("Sara", 22), ("Reza", 30)] # مرتب‌سازی بر اساس سن (عنصر دوم) students.sort(key=lambda x: x[1]) print(students) # [('Sara', 22), ('Ali', 25), ('Reza', 30)]

🔹 5️⃣ مرتب‌سازی رشته‌ها

fruits = ["banana", "Apple", "cherry"] fruits.sort() print(fruits) # ['Apple', 'banana', 'cherry'] (حساس به حروف بزرگ/کوچک) fruits.sort(key=str.lower) print(fruits) # ['Apple', 'banana', 'cherry'] (بدون حساسیت به حروف)

🔹 6️⃣ نکات مهم

  • ()sort درجا عمل می‌کند و هیچ خروجی ندارد.

  • ()sorted یک کپی مرتب شده برمی‌گرداند و لیست اصلی دست نخورده باقی می‌ماند.

  • می‌توان از reverse=True و key=… برای مرتب‌سازی دلخواه استفاده کرد.

  • برای مرتب‌سازی عناصر پیچیده، اغلب از تابع lambda استفاده می‌شود.

💡 خلاصه:

روشتوضیح
()list.sortمرتب‌سازی درجا، تغییر لیست اصلی
list.sort(reverse=True)مرتب‌سازی نزولی
list.sort(key=func)مرتب‌سازی بر اساس تابع کلید
sorted(list)بازگرداندن لیست مرتب شده، لیست اصلی دست نخورده
sorted(list, reverse=True, key=func)نسخه پیشرفته sorted

این روش‌ها تمام نیازهای مرتب‌سازی لیست‌ها در پایتون را پوشش می‌دهند.