آموزش توابع sort و sorted در پایتون

October 2021

# معرفی

در این ویدیو با توابع sort و sorted در پایتون آشنا خواهید شد. توابع sort و sorted برای ترتیب دهی به اطلاعات استفاده میشوند. گاهی باید برای مرتب سازی داده ها در مرحله ای کد بنویسید. مرتب سازی می تواند برای تجربه کاربر در برنامه شما بسیار مهم باشد، خواه بخواهید آخرین فعالیت کاربر را بر اساس مهلت زمانی مرتب کنید یا فهرستی از گیرندگان ایمیل را به ترتیب حروف الفبا با نام خانوادگی قرار دهید. قابلیت مرتب سازی پایتون ویژگی های قوی برای انجام مرتب سازی اولیه یا سفارشی سازی در سطح دانه ای ارائه می دهد.

 

ویدیو پیشنهادی: ویدیو آموزش ساخت تابع در پایتون

 

# تابع sorted پایتون

متد sorted برای ترتیب بندی آبجکت‌های iterable مانند list, tuple, set یا stringها استفاده میشود. این متد یک آبجکت گرفته و یک لیست جدید از اطلاعات ترتیب بندی شده برمیگرداند.

 

به طور مثال اگر لیستی از اعداد را داشته باشید که بخواهید به ترتیب از کوچک به بزرگ مرتب شوند، میتوانید به شکل زیر کار کنید:

>>> numbers = [6, 9, 3, 1]
>>> sorted(numbers)
[1, 3, 6, 9]
>>> numbers
[6, 9, 3, 1]

 

همانطور که در کد بالا میبینید، متد sorted تمام اعداد را مرتب کرده و در یک لیست جدید قرار داده است. نکته‌ای که باید حتما دقت کنید، اطلاعات اولیه تغییری نکرده است.

 

همینطور میتوانید اطلاعات را براساس حروف الفبا نیز مرتب کنید:

>>> names = ['kevin', 'amir', 'bob', 'jack', 'xander']

>>> names2 = sorted(names)
['amir', 'bob', 'jack', 'kevin', 'xander']

 

علاوه بر آبجکت‌ iteratble، متد sorted دو آرگومان دیگر میگیرد: key و reverse

 

آرگومان reverse مشخص میکند که مرتب کردن باید برعکس باشد و از بالا به پایین انجام شود:

>>> nums = [6, 9, 3, 1]

>>> print(sorted(nums, reverse=True))
[9, 6, 3, 1]

 

>>> names = ['kevin', 'amir', 'bob', 'jack', 'xander']

>>> names2 = sorted(names, reverse=True)
['xander', 'kevin', 'jack', 'bob', 'amir']

 

 

آرگومان key یک فانشکن است که میخواهید براساس آن اطلاعات را مرتب کنید. مثلا میخواهید براساس تعداد کاراکترهای string اطلاعات را استفاده کنید که در این صورت میتوانید از متد len استفاده کنید:

>>> names = ['kevin', 'amir', 'bob', 'jack', 'xander', 'al']


>>> sorted(names, key=len)
['al', 'bob', 'amir', 'jack', 'kevin', 'xander']

در مثال بالا ترتیب دیگر بر اساس حروف الفبا نیست بلکه بر اساس تعداد کاراکترهای هر string است.

 

 

# تابع sort پایتون

متد sort دقیقا همانند sorted است اما با دو تفاوت:

1. متد sort فقط روی listها کار میکند

2. متد sort هیچ list جدیدی ایجاد نکرده و اطلاعات اولیه را تغییر میدهد

 

در مثال پایین زمانی که بخواهید مقدار names.sort را چاپ کنید، None نشان میدهد چون متد sort چیزی را return نمیکند، بلکه خود لیست اصلی را تغییر داده است.

>>> names = ['kevin', 'amir', 'bob', 'jack', 'xander']

>>> names.sort()
None

>>> names
['amir', 'bob', 'jack', 'kevin', 'xander']

 

اگر ویدیو بالا را دوست داشتید، پیشنهاد میکنیم به مطالب زیر هم سر بزنید:

آموزش متد reverse در پایتون

ویدیو آموزش متدهای getitem, setitem, delitem در پایتون

ویدیو آموزش ChainMap در پایتون

ارسال نظر

تلاش میکنم سوالات شما را در کمتر از یک روز پاسخ بدم