وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

دسترسی به آخرین عنصر یک لیست

0 4
زمان لازم برای مطالعه: 3 دقیقه


معرفی

در پایتون، لیست ها یکی از پرکاربردترین انواع داده ها هستند.
ما معمولاً از لیست‌ها برای ذخیره داده‌ها در پایتون استفاده می‌کنیم و به دلایل خوب، آنها انعطاف‌پذیری زیادی را در عملیات خود ارائه می‌دهند. یکی از آن عملیاتی که اغلب مطرح می شود، نیاز به دسترسی به آخرین عنصر یک لیست است.

این بایت شما را از طریق چندین روش برای رسیدن به این هدف راهنمایی می کند، از جمله نمایه سازی منفی، برش، و itertools مدول.

استفاده از نمایه سازی منفی

پایتون از نمایه سازی منفی پشتیبانی می کند که به ما امکان می دهد از انتهای لیست به عناصر دسترسی داشته باشیم. شاخص -1 به آخرین مورد، -2 به دومین مورد آخر اشاره دارد و غیره روی. بنابراین در اینجا روش دریافت آخرین عنصر یک لیست با استفاده از نمایه سازی منفی آمده است:

my_list = (1, 2, 3, 4, 5)
last_element = my_list(-1)
print(last_element)

خروجی:

5

توجه داشته باشید: به یاد داشته باشید که نمایه سازی منفی از -1 شروع می شود. این ویژگی مختص پایتون است و در همه زبان های برنامه نویسی موجود نیست.

دسترسی به Last n Elements

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

my_list = (1, 2, 3, 4, 5)
last_two_elements = my_list(-2:)
print(last_two_elements)

خروجی:

(4, 5)

در مثال بالا، my_list(-2:) دو عنصر آخر لیست را دریافت می کند. می توانید 2 را با هر عددی جایگزین کنید تا این تعداد عنصر از انتهای لیست بدست آید.

این itertools ماژول در پایتون با تابعی به نام می آید islice() که می تواند برای بدست آوردن n عنصر آخر یک لیست استفاده شود. در اینجا روش انجام این کار آمده است:

from itertools import islice

my_list = (1, 2, 3, 4, 5)
last_two_elements = list(islice(my_list, len(my_list)-2, None))
print(last_two_elements)

خروجی:

(4, 5)

در مثال بالا، islice() سه پارامتر را می گیرد: قابل تکرار، شاخص شروع و شاخص پایان. ما در حال عبور هستیم len(my_list)-2 به عنوان شاخص شروع و None به عنوان شاخص پایانی برای به دست آوردن دو عنصر آخر. می توانید 2 را با هر عددی جایگزین کنید تا این تعداد عنصر از انتهای لیست بدست آید.

پیشنهاد می‌کنیم بخوانید:  روش قالب بندی تاریخ ها در جاوا اسکریپت برای برنامه های کاربردی وب به خصوص، قالب بندی تاریخ یک کار بسیار رایج است. تقریباً به هر وب سایتی نگاهی بیندازید، خواه یک سرویس گیرنده ایمیل مانند جیمیل، توییتر یا حتی روی مقالات سوء استفاده پشته، به ناچار یک رشته تاریخ/زمان در جایی وجود دارد روی را page. در بسیاری از موارد، به ویژه برنامه های ...

مقایسه روش ها

ما چند روش مختلف را برای بدست آوردن آخرین عنصر یک لیست در پایتون بررسی کرده ایم. هر کدام نقاط قوت و ضعف خاص خود را دارند و بهترین مورد برای استفاده بستگی دارد روی موقعیت خاص شما

نمایه سازی منفی احتمالاً ساده ترین است. این دقیقاً در پایتون ساخته شده است و نیازی به واردات اضافی ندارد. همچنین بسیار کارآمد است، زیرا دریافت یک آیتم بر اساس شاخص یک عملیات زمان ثابت در لیست‌های پایتون است.

my_list = (1, 2, 3, 4, 5)
print(my_list(-1))  

از سوی دیگر، اگر شما نیاز به دریافت آخرین n عناصر یک لیست، نمایه سازی منفی کمتر راحت می شود. شما می توانید از برش استفاده کنید، اما این یک لیست جدید ایجاد می کند، که اگر می تواند ناکارآمد باشد n بزرگ است

my_list = (1, 2, 3, 4, 5)
print(my_list(-3:))  

اینجاست که itertools وارد می شود itertools.islice تابع می تواند آخرین را دریافت کند n عناصر بدون ایجاد لیست جدید با این حال، به واردات اضافی نیاز دارد و نحو کمی پیچیده تر است.

import itertools

my_list = (1, 2, 3, 4, 5)
print(list(itertools.islice(my_list, len(my_list) - 3, None)))  

توجه داشته باشید: به یاد بیاور itertools.islice یک تکرار کننده برمی گرداند، بنابراین باید آن را به یک لیست (با list تابع) اگر می خواهید از آن مانند یک لیست استفاده کنید.

مسائل بالقوه

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

اولاً، همه این روش ها فرض می کنند که لیست خالی نیست. اگر لیست خالی باشد، همه آنها یک علامت را بلند می کنند IndexError. شما می توانید با بررسی طول لیست قبل از تلاش برای دسترسی به آخرین عنصر آن از این امر جلوگیری کنید.

my_list = ()
if my_list:
    print(my_list(-1))  

دوم، به یاد داشته باشید که برش یک لیست، یک لیست جدید ایجاد می کند. اگر لیست شما بسیار بزرگ باشد و حافظه شما نگران کننده باشد، این می تواند مشکل ساز باشد. کپی کردن یک لیست اگر به اندازه کافی بزرگ باشد می تواند عملیات گرانی باشد.

پیشنهاد می‌کنیم بخوانید:  پیشوندهای رشته «u» و «r» و رشته‌های خام در پایتون

در نهایت این را در نظر داشته باشید itertools.islice یک تکرار کننده، نه یک لیست را برمی گرداند. این بدان معنی است که شما فقط می توانید یک بار نتیجه را تکرار کنید. اگر لازم است از نتیجه چندین بار استفاده کنید، باید آن را به یک لیست تبدیل کنید.

نتیجه

در این بایت، ما چندین روش را برای به دست آوردن آخرین عنصر یک لیست در پایتون بررسی کرده ایم، از جمله نمایه سازی منفی، برش و استفاده از itertools. هر روشی مزایا و مشکلات بالقوه خود را دارد.

نمایه سازی منفی ساده و کارآمد است، اما برای به دست آوردن آخرین آن راحت تر است n عناصر. برش انعطاف پذیرتر است، اما می تواند برای بزرگ ناکارآمد باشد n. itertools راه حل کارآمدتری برای بزرگ ارائه می دهد n، اما نحو پیچیده تر است و به جای یک لیست، یک تکرار کننده را برمی گرداند.

(برچسب‌ها به ترجمه)# python



منتشر شده در 1402-12-29 05:04:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید