بکندباز

متد ‎index()‎‎ در پایتون

مثال

پیدا کردن ایندکس آیتم “cherry” در لیست:

fruits = ['apple', 'banana', 'cherry']

x = fruits.index("cherry")
print(x)

توضیحات

متد ‎index()‎‎ ایندکس اولین جایی که کلمه مشخص شده در لیست پیدا می شود را در خروجی برمیگرداند.

سینتکس

list.index(elmnt)

مقادیر پارامتر ها

پارامتر توضیح
elmnt اجباری. آیتمی که می خواهیم موقعیت آن را پیدا کنیم

مثال

ایندکس اولین عدد 32 در لیست:

fruits = [4,  55, 64, 32, 16, 32]

x = fruits.index(32)
print(x)

 


اگر سوالی در رابطه با این تابع داری، می تونی توی بخش کامنت ها بپرسی:

zohreh

مدیر وب سایت بکندباز

دیدگاه‌ها

*
*

    nima پاسخ

    سلام وقت بخیر
    اگر بخوایم عددی رو عنوان index از کاربر بگیریم و مقدار اون رو برگردونیم به کاربر دسنور به چه صورت میشه؟
    سپاس

      ‏زهره احمدی پاسخ

      سلام. وقت شما بخیر
      باید به این شکل عمل کنید:

      
      i = input('Enter Index:')
      
      fruits = ['apple', 'banana', 'cherry']
      
      x = fruits[int(i)]
      print(x)
      
      
    ely پاسخ

    اگر یه متغیر دارم بخوام بدونم چند ایندکس داره چیکار کنم

    مهدی پاسخ

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

      ‏زهره احمدی پاسخ

      سلام. برای اینکار می تونید از تابع enumerate استفاده کنید. این تابع به همه ی اعضای مجموعه یک ایندکس اضافه می کنه که با استفاده از حلقه ی for می تونید ایندکس همه ی اعضای مشابه رو پیدا کنید. مثلاً‌ توی این مثال ایندکس همه ی کلمات banana پیدا و چاپ میشه:

      
      my_list = ['apple', 'banana', 'cherry','banana','blueberry']
      indices = [i for i, x in enumerate(my_list) if x == "banana"]
      print(indices)
      
      
    moein پاسخ

    سلام اگه بخوایم از ایندکس یک رشته ایی را پیدا کنیم بعد هفتا بعدشو پرینت کنیم به همین ترتیب چهل تا چهل تا بره جلو باید چه کنیم

      ‏زهره احمدی پاسخ

      اگر درست سوال رو متوجه شده باشم از همچین کدی می تونید استفاده کنید:

      
      text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
      
      #ایندکس حرف c
      first_index = text.index('c')
      print(first_index)
      
      #هفت حرف بعد از آن
      seven_after = first_index + 7
      print(text[seven_after])
      
      #چاپ 40 تا 40 تا بعد از آن
      for i in range(seven_after+40, len(text), 40):
          print(text[i])
      
      
    Moein پاسخ
    
    smartphoneList = "model:A13,price:3500000,number:3,sold:3,model:A03,price:2000000,number:5,sold:5,model:A70,price:8000000,number:10,sold:8,model:F42,price:4000000,number:20,sold:8,model:M52,price:5000000,number:10,sold:5,model:M22,price:3500000,number:11,sold:5,model:M32,price:4000000,number:31,sold:5,model:A20,price:3000000,number:12,sold:5,model:A52,price:7000000,number:5,sold:5,model:s21,price:15000000,number:2,sold:8,"
    
    

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

      ‏زهره احمدی پاسخ

      من متوجه سوالتون نمیشم. اعدادی که مساوی با نامبرن یعنی چی؟

      نمونه ی خروجی مد نظرتون رو بفرستید

    n.s پاسخ

    سلام وقت بخیر اگر بخواهیم مکان اخرین جایی که مشاهده کرده رو برگردونه باید چجوری استفاده ش کنیم ؟

      ‏زهره احمدی پاسخ

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

      fruits = [4,  55, 64, 32, 16, 32,65]
      fruits.reverse()
      x = len(fruits) -1 - fruits.index(32)
      fruits.reverse()
      print(x)
    امیر سجاد صادقی پاسخ

    من میخوام 5 تا ایدی اسم و فامیلی بگیرم بریزم تو مای لیست بعد شو ال با ایندکس یکی رو پیدا کنم
     

      ‏زهره احمدی پاسخ

      اگر بخواهید با ایندکس از توی لیست مقداری رو استخراج کنید باید عدد ایندکس رو جلوی نام متغیر لیستتون قرار بدید. به این شکل:

      myList = ['ali ahmadi', 'maryam bagheri', 'zahra yazdani'];
      
      print(myList[2])
    ایدا جلالی پاسخ

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

      ‏زهره احمدی پاسخ

      سلام. می تونین از کد زیر استفاده کنین:

      fruits = [4,  55, 64, 32, 16, 32]
      revFruits = []
      
      for i in range(len(fruits)-1, -1, -1):
          revFruits.append(fruits[i])
      
      print(revFruits)

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

    Moslem پاسخ

    سلام کدی نوشتم که میاد یه عددی از کاربر میگیره همراه اپشن و روی اون دو تا عدد عملیات ریاضی انجام میده و برای بار بعدی تکرار میشه حالا مشکلم اینجاست که وقتی کاراکتر + رو میزنم اسکیریپت درست اجرا میشه ولی وقتی مثلا عدد ۱ رو میزنم خطا نمیده ولی جلوی مساوی none رو برمیگردونه :

    Print("2.sum(-)"),,,Print("1.sum(+)")
    اینجا کاربر میتونه عدد ۱ یا + رو انتخاب کنه

    حالا وقتی کاربر + رو میزنه درسته ولی وقتی مثلا میزنه ۱ و مثلا اعداد ۵،۶ که با هم جمع شون کنه اینجوری میشه 6 1 5 = none (البته بر عکس این عبارت) به جای اینکه بگه ۱۱=۵ + ۶ به جای کاراکتر + عدد ۱ رو گذاشته و به جای حاصل جواب none ،،،حالا باید اینجا باید چیکار کنم که این مشکل بر طرف بشه؟

      ‏زهره احمدی پاسخ

      سلام. لطفاً کدتون رو به صورت کامل ارسال کنید تا بررسی کنم.

      آیکون <> روی ادیتور رو بزنید و کدتون رو از این طریق ارسال کنید.

    Zahraaht پاسخ

    سلام، اگه بگن برنامه بنویسید که یک رشته از ورودی input بخواند و مقدار ایندکس اخر را چاپ کند چجوری میشه، ممنون

      ‏زهره احمدی پاسخ

      سلام. ایندکس آخر میشه ایندکس (1-) که به این شکل می تونید مقدارش رو به دست بیارید:

      text = input("Enter your text: ")
      
      print(text[-1])
        ‏زهره احمدی پاسخ

        خود ایندکس آخر هم اگر بخواید برابر هست با طول رشته ورودی منهای 1.

    مصطفی شبانی پاسخ

    سلام 
    آیا امکان تغییر ایندکس وجود داره، به طوریکه ایندکس بجای اینکه از صفر شروع بشه از یک شروع بشه؟
    امکانش هست کد مربوطه رو بفرمایید ..
     

      zohreh پاسخ

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

    pmcir پاسخ

    سلام و خستنه باشید من تازه تو سایت شما ثبت نام کردم  سایتتون فوق العاده است

      zohreh پاسخ

      سلام سلامت باشید.

      خوشحالم که مطالب مورد استفاده واقع شده 🙏

    mb13812016 پاسخ

    سلام خسته نباشید 
    من یک خط کد دارم که داخلش میخوام به ایندکس 9  برسم و اونجور که من فکر میکنم ایندکس 9 باید اسپیس باشه اما وقتی از داخل پایتون ایندکس 9 رو ازش میخوام یک چیز دیگه برمیگردونه (اگه اسپیس ها رو نشمرم درست میشه ها ولی مگه ایا اسپیس ها جزو ایندکس ها حساب نمیشه ؟؟)
    اینم کد

     print(string_3[10])#Python 4 Data Science is string_3  ---- 9 index
    ایندکس ۹ رو میخوام توی خروجی برام پرینت کنه 

      zohreh پاسخ

      سلام. اگر می خواید نهمین حرف رو چاپ کنید باید ایندکس شماره 8 رو چاپ کنید. الان اگر متن شما Python 4 Data Science باشه، ایندکس شماره 9 میشه حرف D، ایندکس شماره 10 هم میشه حرف a.

      ولی نهمین حرف که ایندکس شماره 8 هست، اسپیسه.

        mb13812016 پاسخ

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

          zohreh پاسخ

          بله درسته

    ali پاسخ

    سلام 
    سوال: اگر از کاربر4عدد و 4 اسم بگیریم و بخواهیم عدد زوج با اسم متناظرش چاپ شود چگونه کد بزنیم 

    Khashy پاسخ

    سلام 
    اگر بخوایم حرف اول یک کلمرو جدا کنیم چی؟
    مثلا هر کلمه ای که h شروع میشه 
    hello how are you

      zohreh پاسخ

      سلام

      اول با متد split می تونید جمله تون رو به کلماتش تقسیم کنید. بعد توی یک حلقه for تک تک کلمات رو بررسی کنید. اگر می خواید کلماتی که h شروع میشن رو پیدا کنید باید ایندکس 0 هر کلمه رو چک کنید اگر h بود پرینت بگیرید یا توی یک حلقه دیگه قرار بدید. البته به این متد index نیازی پیدا نمی کنید.

      txt = "hello how are you"
      
      words = txt.split()
      
      for word in words:
          if word[0] == 'h':
              print(word)