از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
پایتون: آخرین عنصر را در لیست دریافت کنید
سرفصلهای مطلب
معرفی
در این آموزش، ما نگاهی به برخی از رایج ترین روش ها برای یافتن آخرین عنصر در لیست در پایتون خواهیم داشت. ابتدا ساده ترین و بیشتر را پوشش می دهیم پایتونیک روش و سپس چند راه حل جایگزین دیگر را پس از آن نشان دهید.
بیایید به لیستی که استفاده خواهیم کرد نگاهی بیندازیم:
exampleList = (1, 2, "Three", ("Four", 5), 6)
توجه داشته باشید: لیست در پایتون مجموعه ای از عناصر است که لزوماً از یک نوع نیستند. یک لیست می تواند شامل عناصری باشد که عبارتند از اعداد، رشته ها، لیست های تودرتو و غیره.
روش دریافت آخرین عنصر در لیست پایتون
راههای مختلفی وجود دارد که میتوانیم آخرین عنصر فهرست را در پایتون به دست آوریم – برخی از آنها بصریتر و کاربردیتر از بقیه هستند، و برخی از آنها در واقع فهرست اصلی را در جای خود تغییر میدهند.
راه حل برنده – با استفاده از نمایه سازی منفی
پایتون از مفهوم نمایه سازی منفی به عنوان روش دسترسی به عناصر لیست. این بدان معنی است که ما می توانیم به عناصر موجود در ترتیب معکوس با استفاده از ()
اپراتور.
به خوبی شناخته شده است که نمایه سازی در لیست ها چگونه کار می کند:
firstElement = exampleList(0)
nthElement = exampleList(n-1)
...
عنصر اول دارای شاخص است 0
، دومی دارای شاخص است 1
، و n
عنصر ام دارای اندیس است n-1
.
نمایه سازی منفی از همان منطق پیروی می کند، اما به ترتیب معکوس. آخرین عنصر دارای شاخص است -1
، عنصر دوم تا آخر دارای شاخص است -2
، و غیره روی:
lastElement = exampleList(-1)
print("Last element: ", lastElement)
print("exampleList: ", exampleList)
secondToLast = exampleList(-2)
print("Second to last element: ", secondToLast)
کدام خروجی ها:
Last element: 6
exampleList: (1, 2, 'Three', ('Four', 5), 6)
Second to last element: ('Four', 5)
نمایه سازی منفی لیست اصلی را تغییر نمی دهد. این تنها راهی برای دسترسی به عناصر بدون هیچ تغییری در لیست اصلی است.
این تا حد زیادی سادهترین و پایتونیکترین راهحل است که بیشتر مورد علاقه است.
با استفاده از نمایه سازی
نمایه سازی ساده معمولاً برای دسترسی به عناصر موجود در لیست به ترتیب اصلی با استفاده از استفاده می شود ()
اپراتور. همانطور که در بالا توضیح داده شد، عنصر اول دارای یک شاخص است 0
، عنصر دوم دارای یک شاخص است 1
، و غیره روی. با دانستن آن، میتوان نتیجه گرفت که آخرین عنصر دارای شاخص است len(exampleList)-1
:
lastElement = exampleList(len(exampleList)-1)
print("Last element: ", lastElement)
print("exampleList: ", exampleList)
secondToLast = exampleList(len(exampleList)-2)
print("Second to last element: ", secondToLast)
کدام خروجی ها:
Last element: 6
exampleList: (1, 2, 'Three', ('Four', 5), 6)
Second to last element: ('Four', 5)
علاوه بر نمایه سازی منفی، روش نمایه سازی فقط برای دسترسی به عناصر لیست بدون انجام هیچ تغییری در لیست اصلی استفاده می شود.
با استفاده از ترکیدن() روش
در پایتون، pop()
متد برای حذف آخرین عنصر لیست داده شده و برگرداندن آیتم حذف شده استفاده می شود.
pop()
متد می تواند به صورت اختیاری یک آرگومان عدد صحیح را بپذیرد. این شاخص عنصری است که می خواهیم حذف کنیم، بنابراین اگر فراخوانی کنیمexampleList.pop(0)
، اولین عنصر حذف و برگردانده می شود.اگر آرگومان عدد منفی باشد، منطق نمایه سازی منفی انجام می شود تا مشخص شود کدام عنصر حذف شود. صدا زدن
exampleList.pop(-1)
منجر به حذف آخرین عنصر از می شودexamleList
.
اگرچه، از آنجایی که pop()
روش به طور پیش فرض از قبل ظاهر می شود آخرین عنصر، اصلاً نیازی به استفاده از نمایه سازی نیست:
lastElement = exampleList.pop()
print("Last element: ", lastElement)
print("exampleList: ", exampleList)
کدام خروجی ها:
Last element: 6
exampleList: (1, 2, 'Three', ('Four', 5))
توجه داشته باشید که pop()
روش، طبق تعریف، لیست اصلی را تغییر می دهد با حذف عنصر پاپ شده
با استفاده از Slicing
در پایتون، نماد برش برای دریافت فهرست فرعی از یک لیست استفاده می شود. خود نماد بسیار ساده است:
exampleList(startIndex:(endIndex(:indexStep)))
این بدان معنی است که ما می توانیم فهرست فرعی را دریافت کنیم exampleList
با شروع شاخص ها از startIndex
، تمام راه را به endIndex
با قدم از indexStep
.
endIndex
و indexStep
هستند اختیاری استدلال ها اگر ما را ترک کنیم endIndex
خالی، مقدار پیش فرض آن انتهای لیست اصلی است. مقدار پیش فرض برای indexStep
است 1
.
اگر لیستی داشته باشیم
letters=('a', 'b', 'c', 'd', 'e')
و با استفاده از آن برش دهیدletters(1:3)
فهرست فرعی حاصل خواهد بود('b', 'c', 'd')
. این بدان معنی است که ما در حال انتخاب عناصر لیست هستیمletters
با شاخص ها1, 2, and 3
.
letters(0:4:2)
یک فهرست فرعی که فقط حاوی عناصر است را برمی گرداند روی شاخص های زوج –0, 2, 4
.
ویژگی کلیدی نماد برش که ما از آن استفاده خواهیم کرد این است از نمایه سازی منفی پشتیبانی می کند.
این به این معنی است که letters(-1:)
را می توان چنین تفسیر کرد: دریافت تمام عناصر در لیست letters
، از آخرین عنصر تا انتهای لیست letters
. فهرست فرعی حاصل تنها حاوی آخرین عنصر لیست اصلی خواهد بود:
lastElement = exampleList(-1:)(0)
print("Last element: ", lastElement)
print("exampleList: ", exampleList)
کدام خروجی ها:
Last element: 6
exampleList: (1, 2, 'Three', ('Four', 5), 6)
روش برش فقط برای دسترسی به عناصر لیست و ایجاد یک لیست جدید با استفاده از آنها – بدون انجام هیچ تغییری در لیست اصلی استفاده می شود.
با استفاده از Reverse Iterator
پایتون دو تابع داخلی دارد که در این روش از آنها استفاده خواهیم کرد – reversed()
و next()
.
reversed()
یک لیست را به عنوان آرگومان می پذیرد و تکرار کننده معکوس را برای آن لیست برمی گرداند، به این معنی که تکرار معکوس می شود، از آخرین عنصر شروع می شود تا عنصر اول. next()
یک تکرار کننده را می پذیرد و عنصر بعدی را از تکرار کننده برمی گرداند:
reversedIterator = reversed(exampleList)
lastElement = next(reversedIterator)
print("Last element: ", lastElement)
کدام خروجی ها:
Last element: 6
exampleList: (1, 2, 'Three', ('Four', 5), 6)
روش تکرار معکوس فقط برای دسترسی به عناصر لیست به ترتیب معکوس استفاده می شود – بدون انجام هیچ تغییری در لیست اصلی.
با استفاده از معکوس() روش
reverse()
روش استفاده می شود عناصر لیست را معکوس کنید. هیچ آرگومان نمی گیرد و هیچ مقداری بر نمی گرداند، در عوض، لیست اصلی را برعکس می کند درجا. این بدان معنی است که ما می توانیم لیست را معکوس کنیم و به اولین عنصر جدید دسترسی پیدا کنیم:
exampleList.reverse()
lastElement = exampleList(0)
print("Last element: ", lastElement)
print("exampleList: ", exampleList)
کدام خروجی ها:
Last element: 6
exampleList: (6, ('Four', 5), 'Three', 2, 1)
reverse()
متد، طبق تعریف، فهرست اصلی را با معکوس کردن ترتیب عناصر آن تغییر میدهد. لطفاً به خاطر داشته باشید که این رویکرد ممکن است واقعاً بیش از حد ناکارآمد باشد – زیرا معکوس کردن یک لیست زمان می برد.
استفاده کردن itemgetter()
operator
ماژول روش های کارآمد زیادی را برای انجام تمام عملیات های اساسی در پایتون، مانند عملیات ریاضی و منطقی، و همچنین سایر عملیات مقایسه اشیاء و توالی ارائه می دهد.
itemgetter()
روش یکی از روش های متعدد در operator
مدول. یک یا چند عدد صحیح را به عنوان آرگومان می پذیرد و a را برمی گرداند شیء قابل فراخوانی که می تواند به عنوان یک نوع عملکرد خاص دیده شود.
وقتی زنگ میزنیم operator.itemgetter(0)
، شی به دست آمده تابعی خواهد بود که اولین عنصر یک مجموعه را دریافت می کند. ما همچنین می توانیم یک نام به آن شی اختصاص دهیم:
getFirstElement = operator.itemgetter(0)
در حال حاضر، ما می توانیم در یک لیست به getFirstElement(people)
، که اولین عنصر را از لیست برمی گرداند people
.
itemgetter()
اپراتور از نمایه سازی منفی پشتیبانی می کند بنابراین بازیابی آخرین عنصر به صورت زیر خلاصه می شود:
import operator
getLastElement = operator.itemgetter(-1)
lastElement = getLastElement(exampleList)
print("Last element: ", lastElement)
print("exampleList: ", exampleList)
کدام خروجی ها:
Last element: 6
exampleList: (1, 2, 'Three', ('Four', 5), 6)
این رویکرد لیست اصلی را تغییر نمی دهد – یک شی قابل فراخوان ایجاد می کند که با استفاده از شاخص ها به آن دسترسی پیدا می کند.
استفاده از حلقه ها
اکنون، یک رویکرد بسیار دستی و ابتدایی تر، استفاده از حلقه ها است. میتوانیم از طریق فهرست، با استفاده از طول لیست به عنوان مرحله نهایی، تکرار کنیم. سپس هنگامی که روی را len(list)-1
مرحله – ما به سادگی می توانیم آن مورد را برگردانیم:
for i in range(0, len(exampleList)):
if i == (len(exampleList)-1) : lastElement = exampleList(i)
print("Last element: ", lastElement)
print("exampleList: ", exampleList)
کدام خروجی ها:
Last element: 6
exampleList: (1, 2, 'Three', ('Four', 5), 6)
این نیز به هیچ وجه لیست را تغییر نمی دهد و به سادگی به یک عنصر دسترسی پیدا می کند.
نتیجه
راه های زیادی برای دریافت آخرین عنصر در یک لیست در پایتون وجود دارد. نگرانی اصلی هنگام انتخاب راه مناسب برای شما این است که آیا می خواهید آخرین عنصر حذف شود یا خیر.
اگر نیاز دارید که آخرین عنصر را بدون انجام هیچ تغییری در لیست اصلی دریافت کنید، روش نمایه سازی منفی برنده آشکار است این ساده ترین و ساده ترین است پایتونیک راه حل این مشکل
از طرف دیگر، اگر نیاز به حذف آخرین عنصر و همچنین دسترسی به آن دارید، احتمالاً باید با آن بروید pop()
روش، که روش داخلی برای انجام دقیقاً این رفتار است.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-10 20:54:47