ساده ترین راه برای مرتب سازی با عملکرد طبقه بندی شده (لیست) است که لیستی را می گیرد و لیست جدیدی را با آن عناصر به ترتیب مرتب شده باز می گرداند. لیست اصلی تغییر نمی کند.
مهمترین چیز برای انتقال لیست به عملکرد مرتب شده () است ، اما در واقع می تواند به عنوان ورودی هر نوع مجموعه قابل تکرار باشد. روش قدیمی لیست. sort () یک جایگزین در زیر است. عملکرد مرتب شده () در مقایسه با مرتب سازی () آسان تر به نظر می رسد ، بنابراین توصیه می کنم از طبقه بندی شده استفاده کنید ().
عملکرد مرتب شده () را می توان از طریق آرگومان های اختیاری تنظیم کرد. آرگومان اختیاری مرتب شده () معکوس = درست ، به عنوان مثالمرتب شده (لیست ، معکوس = درست) ، باعث می شود که به عقب مرتب شود.
به عنوان مثال با لیستی از رشته ها ، مشخص کردن کلید = LEN (عملکرد ساخته شده در لن ()) رشته ها را بر اساس طول ، از کوتاهترین تا طولانی ترین مرتب می کند. مرتب سازی برای هر رشته برای دریافت لیست مقادیر طول پروکسی ، و سپس با آن مقادیر پروکسی مرتب می شود.

به عنوان نمونه دیگر ، مشخص کردن "str. lower" به عنوان عملکرد کلیدی راهی برای زور مرتب سازی برای درمان بزرگ و کوچک همان است:
شما همچنین می توانید MYFN خود را به عنوان عملکرد کلیدی در نظر بگیرید ، مانند این:
برای مرتب سازی پیچیده تر مانند مرتب سازی بر اساس نام خانوادگی و سپس با نام First ، می توانید از توابع Attemgetter یا Attgetter مانند:
روش () روش
به عنوان جایگزینی برای مرتب سازی شده () ، روش مرتب سازی () در لیستی که لیست می کند به ترتیب صعودی ، به عنوان مثالlist. sort (). روش مرتب سازی () لیست زیرین را تغییر داده و هیچ یک را برمی گرداند ، بنابراین از آن مانند این استفاده کنید:
موارد فوق یک سوء تفاهم بسیار متداول با مرتب سازی () است - این * لیست مرتب شده را برنگردد. روش مرتب سازی () باید در یک لیست فراخوانی شود. این کار روی هیچ مجموعه ای قابل توجه کار نمی کند (بلکه عملکرد مرتب شده () در بالا روی هر چیزی کار می کند). روش مرتب سازی () عملکرد مرتب شده () را پیش می برد ، بنابراین احتمالاً آن را در کد قدیمی تر مشاهده خواهید کرد. روش مرتب سازی () نیازی به ایجاد لیست جدید ندارد ، بنابراین می تواند کمی سریعتر باشد در این مورد که عناصر برای مرتب سازی در حال حاضر در یک لیست هستند.
کله
یک Tuple یک گروه بندی با اندازه ثابت از عناصر است ، مانند یک هماهنگ (x ، y). Tuples مانند لیست ها هستند ، به جز تغییر ناپذیر هستند و اندازه را تغییر نمی دهند (تاپل ها کاملاً تغییر ناپذیر نیستند زیرا یکی از عناصر موجود می تواند قابل تغییر باشد). Tuples نوعی نقش "ساختار" را در پایتون بازی می کند - روشی مناسب برای عبور از مقادیر کمی منطقی و ثابت. تابعی که نیاز به بازگشت مقادیر متعدد دارد ، فقط می تواند یک مقادیر از مقادیر را برگرداند. به عنوان مثال ، اگر می خواستم لیستی از مختصات 3 بعدی داشته باشم ، نمایندگی طبیعی پایتون لیستی از تاپل ها خواهد بود ، جایی که هر یک از Tuple اندازه 3 دارای یک گروه (x ، y ، z) است.
برای ایجاد یک tuple ، کافی است مقادیر موجود در پرانتز را که توسط کاما جدا شده است ، لیست کنید. Tuple "خالی" فقط یک جفت پرانتز خالی است. دسترسی به عناصر موجود در یک تاپل دقیقاً مانند یک لیست است - len () ، [] ، برای ، در و غیره. همه یکسان هستند.
برای ایجاد یک Tuple Size-1 ، عنصر تنها باید توسط یک کاما دنبال شود.
این یک مورد خنده دار در نحو است ، اما کاما برای متمایز کردن Tuple از مورد عادی قرار دادن بیان در پرانتز لازم است. در بعضی موارد می توانید پرانتز را از بین ببرید و پایتون از کاما می بینید که قصد یک توپی را دارید.
اختصاص یک توپل به یک تاپل اندازه یکسان از نام های متغیر ، تمام مقادیر مربوطه را اختصاص می دهد. اگر Tuples به اندازه یکسان نباشد ، خطایی را به وجود می آورد. این ویژگی برای لیست ها نیز کار می کند.
لیست درک (اختیاری)
درک لیست یک ویژگی پیشرفته تر است که برای برخی موارد خوب است اما برای تمرینات مورد نیاز نیست و چیزی نیست که در ابتدا باید یاد بگیرید (یعنی می توانید از این بخش صرف نظر کنید). درک لیست یک روش جمع و جور برای نوشتن عبارتی است که به یک لیست کامل گسترش می یابد. فرض کنید ما یک لیست لیست [1 ، 2 ، 3 ، 4] داریم ، در اینجا درک لیست برای محاسبه لیستی از مربع های آنها وجود دارد [1 ، 4 ، 9 ، 16]:
نحو [expr for var in list] است-لیست برای VAR در یک حلقه معمولی به نظر می رسد ، اما بدون روده بزرگ (:). EXPR در سمت چپ آن یک بار برای هر عنصر ارزیابی می شود تا مقادیر لیست جدید را ارائه دهد. در اینجا مثالی با رشته ها آورده شده است ، که در آن هر رشته به پرونده بالایی تغییر می یابد. ضمیمه شده:
برای محدود کردن نتیجه می توانید یک آزمایش IF را در سمت راست حلقه اضافه کنید. آزمون IF برای هر عنصر ارزیابی می شود ، از جمله فقط عناصری که آزمون صحیح است.
ورزش: لیست 1. py
برای تمرین مطالب موجود در این بخش ، مشکلات بعدی را در List1. py که از مرتب سازی و tuples (در تمرینات اساسی) استفاده می کنید ، امتحان کنید.
به جز آنچه در غیر این صورت ذکر شد ، محتوای این صفحه تحت مجوز Creative Commons Attribution 4. 0 مجوز دارد و نمونه های کد تحت مجوز Apache 2. 0 مجوز دارند. برای جزئیات بیشتر ، به سیاست های سایت Google Developers مراجعه کنید. جاوا یک علامت تجاری ثبت شده اوراکل و/یا شرکت های وابسته به آن است.
ارزهای دیجیتال...
ما را در سایت ارزهای دیجیتال دنبال می کنید
برچسب :
نویسنده : مریم پالیزبان
بازدید : <-PostHit->
تاريخ : شنبه
27 اسفند
1401 ساعت: 18:26