مرتب سازی لیست (Sort Lists)
«مرتب سازی لیست (Sort Lists)» یعنی چیدن آیتم ها با ترتیب مشخص. «مرتب سازی (Sort)» یعنی از کوچک به بزرگ یا برعکس. «کلید (Key Function)» تابعی برای تعیین منطق مرتب سازی است. همین باعث نتایج دقیق تر می شود.
مرتب سازی الفبایی و عددی
متد sort() به صورت پیش فرض صعودی مرتب می کند.
thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]
thislist.sort()
print(thislist)
همین رفتار برای لیست عددی هم برقرار است.
thislist = [100, 50, 65, 82, 23]
thislist.sort()
print(thislist)
مرتب سازی نزولی با reverse=True
برای نزولی، آرگومان reverse = True را بده.
thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]
thislist.sort(reverse = True)
print(thislist)
thislist = [100, 50, 65, 82, 23]
thislist.sort(reverse = True)
print(thislist)
شخصی سازی مرتب سازی با key
با «کلید (key)» می توان منطق مرتب سازی را تعیین کرد.
def myfunc(n):
return abs(n - 50)
thislist = [100, 50, 65, 82, 23]
thislist.sort(key = myfunc)
print(thislist)
مرتب سازی بدون حساسیت به حروف
به صورت پیش فرض، حروف بزرگ جلوتر می آیند. نتیجه ممکن است عجیب باشد.
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort()
print(thislist)
برای بی تفاوتی به بزرگی حروف، از str.lower به عنوان کلید استفاده کن.
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort(key = str.lower)
print(thislist)
برعکس کردن ترتیب با reverse()
متد reverse() ترتیب فعلی را فقط برمی گرداند.
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.reverse()
print(thislist)
تمرین گام به گام مرتب سازی لیست
- یک لیست نمره بساز.
- آن را صعودی مرتب کن.
- همان لیست را نزولی هم ببین.
scores = [18, 12, 20, 15, 10]
scores.sort()
print(scores)
scores.sort(reverse = True)
print(scores)
نکته: برای مرور مقدمات، بخش درک لیست را ببین. همچنین صفحه مرتب سازی لیست را بوکمارک کن.
نکته: پس از مرتب سازی، ادامه بده و کپی کردن لیست را یاد بگیر.
جمع بندی سریع
- sort() صعودی است، reverse=True نزولی می کند.
- key منطق مرتب سازی را تعیین می کند.
- str.lower مرتب سازی را بی حساسیت می کند.
- reverse() فقط ترتیب فعلی را برمی گرداند.
- خوانایی را فدای پیچیدگی نکن.