در پایتون، مرتبسازی لیستها (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 |
این روشها تمام نیازهای مرتبسازی لیستها در پایتون را پوشش میدهند.