از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
دسترسی به آخرین عنصر یک لیست
سرفصلهای مطلب
معرفی
در پایتون، لیست ها یکی از پرکاربردترین انواع داده ها هستند.
ما معمولاً از لیستها برای ذخیره دادهها در پایتون استفاده میکنیم و به دلایل خوب، آنها انعطافپذیری زیادی را در عملیات خود ارائه میدهند. یکی از آن عملیاتی که اغلب مطرح می شود، نیاز به دسترسی به آخرین عنصر یک لیست است.
این بایت شما را از طریق چندین روش برای رسیدن به این هدف راهنمایی می کند، از جمله نمایه سازی منفی، برش، و 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 را با هر عددی جایگزین کنید تا این تعداد عنصر از انتهای لیست بدست آید.
مقایسه روش ها
ما چند روش مختلف را برای بدست آوردن آخرین عنصر یک لیست در پایتون بررسی کرده ایم. هر کدام نقاط قوت و ضعف خاص خود را دارند و بهترین مورد برای استفاده بستگی دارد روی موقعیت خاص شما
نمایه سازی منفی احتمالاً ساده ترین است. این دقیقاً در پایتون ساخته شده است و نیازی به واردات اضافی ندارد. همچنین بسیار کارآمد است، زیرا دریافت یک آیتم بر اساس شاخص یک عملیات زمان ثابت در لیستهای پایتون است.
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))
دوم، به یاد داشته باشید که برش یک لیست، یک لیست جدید ایجاد می کند. اگر لیست شما بسیار بزرگ باشد و حافظه شما نگران کننده باشد، این می تواند مشکل ساز باشد. کپی کردن یک لیست اگر به اندازه کافی بزرگ باشد می تواند عملیات گرانی باشد.
در نهایت این را در نظر داشته باشید itertools.islice
یک تکرار کننده، نه یک لیست را برمی گرداند. این بدان معنی است که شما فقط می توانید یک بار نتیجه را تکرار کنید. اگر لازم است از نتیجه چندین بار استفاده کنید، باید آن را به یک لیست تبدیل کنید.
نتیجه
در این بایت، ما چندین روش را برای به دست آوردن آخرین عنصر یک لیست در پایتون بررسی کرده ایم، از جمله نمایه سازی منفی، برش و استفاده از itertools
. هر روشی مزایا و مشکلات بالقوه خود را دارد.
نمایه سازی منفی ساده و کارآمد است، اما برای به دست آوردن آخرین آن راحت تر است n
عناصر. برش انعطاف پذیرتر است، اما می تواند برای بزرگ ناکارآمد باشد n
. itertools
راه حل کارآمدتری برای بزرگ ارائه می دهد n
، اما نحو پیچیده تر است و به جای یک لیست، یک تکرار کننده را برمی گرداند.
(برچسبها به ترجمه)# python
منتشر شده در 1402-12-29 05:04:03