پایتون دو راه برای مرتبسازی فهرست ارائه میکند، متد لیست داخلی ()list.sort و تابع داخلی sorted(). اگرچه هر دو عناصر یک لیست را مرتب می کنند، اما در صورت استفاده نادرست می توانند نتایج غیرمنتظره یا نامطلوب ایجاد کنند.
تفاوت ها و شباهت ها
تفاوت اصلی بین این دو این است که list.sort() لیست را در جای خود مرتب میکند، ایندکسهای آن را تغییر میدهد و None را برمیگرداند، در حالی که sorted () لیست مرتبشده جدیدی را برمیگرداند که لیست اصلی را بدون تغییر میگذارد. تفاوت دیگر این است که sorted() هر تکراری را می پذیرد در حالی که list.sort() متدی از کلاس list است و فقط می تواند با لیست ها استفاده شود.
هم list.sort() و هم sorted() کلید یکسانی دارند و آرگومانهای اختیاری معکوس دارند و میتوان آنها را قبل از انجام مقایسه در هر عنصر لیست فراخوانی کرد.
زمان استفاده از هر کدام
باید list.sort() هر زمان که جهش در لیست مورد نظر باشد و بازیابی ترتیب اصلی عناصر مورد نظر نباشد، استفاده شود. از سوی دیگر، sorted() باید زمانی استفاده شود که شیء مرتبسازی شده تکرارپذیر باشد (مثلاً list, tuple, dictionary, string) و نتیجه مورد نظر یک لیست مرتب شده است که شامل همه عناصر است.