3 روش برای گرفتن ایندکس یک آیتم از لیست پایتون

امیرحسین بیگدلو 1 سال قبل

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

 

لیست پایتون یک ساختار داده ای است که نقش یک آرایه را به طور موثر ایفا می کند. علاوه بر این، یک "لیست" المان ها را به صورت پویا ذخیره می کند و  بر خلاف آرایه ها می تواند انواع مختلفی از داده ها را در خود ذخیره کند. به همین دلیل میتوان list پایتون را به عنوان جانشینی مناسب برای آرایه ها در نظر گرفت.

 

 

 #  چطور ایندکس یک المان را از لیست پایتون بگیریم؟

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

 

 

 +  استفاده از list comprehension

از list comprehension پایتون میتوان برای دریافت ایندکس تمام رخدادهای یک المان استفاده کرد. سینتکس list comprehension پایتون به شکل زیر است:

[expression for element in iterator if condition]

 

به مثال زیر دقت کنید. در کد زیر ایندکس تمام اعداد 10 را گرفته ایم:

lst = [10,20,30,10,50,10,45,10]
print ("List : " ,lst)
res = [x for x in range(len(lst)) if lst[x] == 10]
print ("Indices at which element 10 is present: " + str(res))

# OUTPUT
List :  [10, 20, 30, 10, 50, 10, 45, 10]
Indices at which element 10 is present: [0, 3, 5, 7]

 

مقاله پیشنهادی: آموزش حذف آیتم از لیست های پایتون

 

 +  استفاده از تابع index

متد index یک تابع داخلی پایتون است که برای دریافت مقدار ایندکس یک آیتم خاص استفاده میشود که سینتکس آن به شکل زیر است:

index(element,start,end)

 

پارامترهای start و end اختیاری هستند و مشخص کردند محدوده ای است که باید در لیست جستجو شود. برخلاف دیگر متدها، تابع index فقط عدد ایندکس اولین آیتم را برمیگرداند. اگر المان درخواستی در لیست وجود نداشته باشد خطای ValueError ایجاد خواهد شد:

lst = [10,20,30,10,50,10,45,10] 
print ("List : " ,lst) 
print("Index at which element 10 is present :",lst.index(10)) 

# OUTPUT
List :  [10, 20, 30, 10, 50, 10, 45, 10]
Index at which element 10 is present : 0

 

 

 +  استفاده از تابع enumerate

تابع enumerate پایتون هم میتوانید شماره ایندکس تمام رخدادهای یک آیتم را پیدا کند:

lst = [10,20,30,10,50,10,45,10] 
print ("List : " ,lst) 
res = [x for x, z in enumerate(lst) if z == 10] 
print ("Indices at which element 10 is present: " + str(res)) 

# OUTPUT
List :  [10, 20, 30, 10, 50, 10, 45, 10]
Indices at which element 10 is present: [0, 3, 5, 7]

 

در کد بالا تابع enumerate یک شمارنده به نام x ایجاد کرده که در هر دور حلقه یکی به آن اضافه میشود و اگر z با عدد خواسته شده برابر باشد متغیر x را برمیگرداند.

مطالب مشابه



مونگارد