متد insert() یکی از توابع درونی پایتون است. از این متد برای اضافه کردن عنصر به جایگاه مشخص شده در لیستهای پایتون استفاده میشود. بعد از اضافه شدن عنصر جدید به لیست، تمام عناصر بعدی به اندازه یک واحد به سمت راست – اندیس بزرگتر – شیفت داده میشوند. در واقع اندازه لیست به مقدار یک عنصر بزرگتر میشود. این متد با متد append در پایتون تفاوت دارد. زیرا مقدار داده شده به متد append() به انتهای لیست اضافه میشود. یکی از کاربردهای متد insert در پایتون، افزودن داده به لیستهایی با اندازه بسیار بزرگ است. زیرا استفاده از این متد برای وارد کردن دادههای جدید به این لیستها، باعث صرفهجویی زیادی در زمان میشود.
آنچه در این مطلب میآموزید:
-
در این مطلب با متد insert آشنا شده و روش استفاده از آن را یاد میگیرید.
-
سینتکس متد insert را بررسی کرده و پارامترهای آن را میشناسید.
-
تفاوت بین متدهای append و insert را دانسته و زمان استفاده از هر کدام را یاد میگیرید.
-
با رایجترین خطای مربوط به استفاده از متد insert آشنا میشوید.
-
روش اضافه کردن عنصر به ابتدا و انتهای لیست را با کمک این متد میآموزید.
-
دلیل استفاده از اندیسهای منفی و روش وارد کردن داده به مکان مشخصی از لیست را متوجه میشوید.

در این مطلب از مجله فرادرس با متد insert() آشنا آشنا میشویم. این متد یکی از متدهای لیست در پایتون است. ابتدا کاربرد آن را به شکل کامل توضیح میدهیم. سپس سینتکس متد insert() را بررسی خواهیم کرد. در نهایت هم به منظور کمک به درک بهتر مطلب از چند مثال مختلف استفاده میکنیم.
کاربرد متد insert در پایتون چیست؟
فرض کنیم، وظیفه مرتبکردن نمرات دانشجویان به صورت صعودی بر عهده ما گذاشته شده است. نمرات ذخیره شده در لیست به شکل [99, 90, 80, 70] قرار گرفتهاند. اکنون مشخصات دانشجویی با نمره 95 داده شده است. باید نمره این دانشجو را هم در لیست ذخیره کنیم. یکی از روشها این است که ابتدا نمره 95 را به لیست اضافه کنیم. سپس دادههای درون لیست را با کمک تابع sort() مرتب کنیم. اما هزینه «پیچیدگی زمانی» (Time Complexity) مربوط به انجام این کار برای هر عنصر، برابر با است. زیرا تابع sort() از الگوریتم «مرتب سازی ادغامی» (Merge Sort) استفاده میکند.
این مسئله به معنای آن است که بخاطر اضافه کردن فقط یک عنصر، عملکرد کدها کندتر میشود. بنابراین وقتی میتوانیم با کمک یکی از توابع درونی پایتون، عنصر داده شده را در مکان مشخصی قرار دهیم، چرا باید کدهای خود را پیچیدهتر کرده و مصرف منابع را افزایش دهیم؟ پیچیدگی زمانی مربوط به وارد کردن عنصر با استفاده از تابع insert() برابر با است.
در نتیجه برای حل مسئله بالا با استفاده از تابع insert()، فقط کافی است که مقدار 95 را در خانهای با اندیس 91 وارد کنیم. لیست نهایی به شکل [99, 95, 90, 80, 70] در خروجی، نمایش داده خواهد شد.
کلمه «Insert» در فارسی به معنای «وارد کردن» است. همینطوری که از نام تابع مشخص است، متد insert در پایتون هم برای وارد کردن عنصر داده شده در لیست به کار برده میشود. در این متد باید مکان وارد کردن عنصر را هم مشخص کنیم.
سینتکس متد insert در پایتون
تابع insert() برای انجام وظیفه خود به دو پارامتر نیاز دارد. در فهرست زیر، این پارامترها را معرفی کردهایم.
- index : این پارامتر شماره اندیس مکانی را نشان میدهد که عنصر مورد نظر باید در آنجا قرار بگیرد.
- element : این پارامتر هم نشاندهنده همان عنصری است که به لیست اضافه میکنیم.
در کادر زیر، سینتکس کامل استفاده از این متد را نوشتهایم.
مقدار پارامتر index باید از نوع عدد صحیح باشد. اما بهجای پارامتر element میتوان هر مقداری با هر نوعی قرار داد. برای مثال میتوان به رشته، عدد صحیح، شیء یا حتی لیست هم اشاره کرد.

متد insert() عنصر داده شده را به لیست اضافه میکند. سپس شیء لیست را بهروزرسانی میکند. بنابراین این متد هیچ خروجی ندارد. خروجی متد insert() را میتوانیم برابر با «None» در نظر بگیریم.
مثالی درباره استفاده از متد insert در پایتون
در این بخش از مطلب، با کمک مثال سادهای، روش عملکرد متد insert در پایتون را بررسی کردهایم.
بعد از اجرای کد بالا، رشته to به لیست lis اضافه میشود. در نتیجه خروجی به شکل زیر نمایش داده میشود.
List: ['Welcome', 'to', 'Scaler']
در بخشهای بعد مطلب، مثالهای بیشتر و متنوعتری را بررسی کردهایم.
چگونه پایتون را در فرادرس یاد بگیریم؟
فرادرس محتوای آموزشی بسیار خوبی برای یادگیری پایتون تولید کرده است. روشهای متنوعی برای یادگیری پایتون وجود دارند. به عنوان نمونه میتوانیم به یادگیری خودآموز، کلاسهای حضوری یا آنلاین و غیره اشاره کنیم. هر کدام از این روشها نکات مثبت و منفی مختلفی دارند. در میان روشهای گوناگون، استفاده از فیلمهای آموزشی فرادرس، بیشترین تاثیر را دارد. از آنجا که فیلمهای آموزشی فایدههای زیادتری دارند. نسبت به سایر روشهای یادگیری، محبوبیت بیشتری هم دارند. به عنوان نمونه، میتوانیم به مقرونبهصرفه بودن، کیفیت بالای تضمین شده، امکان تکرار تماشای آموزشها و غیره اشاره کنیم.

فرادرس به عنوان بزرگترین تولید کننده فیلمها و مطالب آموزشی و علمی در کشور، محتوای بسیار خوبی در زمینههای متنوع تولید کرده است. یکی از حوزههای مورد علاقه مخاطبان فرادرس، تکنولوژیهای مربوط به کامپیوتر و برنامه نویسی است. زبان برنامه نویسی پایتون یکی از پرطرفدارترین گزینهها در میان این تکنولوژیهاست. در نتیجه، فرادرس، فیلمهای بسیار با کیفیت و ارزشمندی در زمینه آموزش پایتون، تولید کرده است. در پایین، چند مورد از از این فیلمها را معرفی کردهایم. برای مشاهده فیلمهای بیشتر بر روی تصویر بالا کلیک کرده و وارد صفحه اصلی این مجموعه آموزش شوید.
در ادامه رایجترین خطاهای مربوط به استفاده از متد insert() را بررسی کردهایم.
خطای مربوط به متد insert در پایتون
در صورت استفاده از متد insert() بر روی هر شیئی به غیر از لیست، با خطای AttributeError روبهرو میشویم.
برای مثال، فرض کنید که میخواهیم عنصری را با کمک این متد به داخل شیء رشته وارد کنیم. در این صورت با پیغام خطا روبهرو میشویم. زیرا مقادیر با نوع رشته از متد insert() پشتیبانی نمیکنند.
در کد پایین، مثالی را درباره افزودن مقدار به رشته، بررسی کردهایم.
بعد از اجرای کدهای بالا، با پیغام خطا روبهرو میشویم. در نتیجه، خروجی زیر در کنسول پایتون نمایش داده میشود.
Traceback (most recent call last): File "./prog.py", line 8, in <module> AttributeError: 'str' object has no attribute 'insert'
در اعلان خطای بالا نوشته شده است که شیء str متدی به نام insert() ندارد. در ادامه مطلب، چند مثال مختلف را درباره استفاده از متد insert در پایتون بررسی کردهایم.
مثالهایی درباره استفاده از متد insert در پایتون
تا به اینجای کار، اطلاعات کاملی درباره متد insert() و روش استفاده از آن بدست آوردهایم. در پایتون ساختار داده دیگری نیز به نام تاپل وجود دارد. تاپلها و لیستها شباهتهای زیادی به یکدیگر دارند. اما این ساختارها دارای تفاوتهای مهمی هم هستند. برای شناخت کامل این ساختارها و تفاوتهایشان پیشنهاد میکنیم که فیلم آموزش رایگان داده ساختارهای List و Tuple در پایتون را از فرادرس مشاهده کنید. لینک مربوط به این فیلم در پایین نیز قرار داده شده است.
در بخش پایین، چند مثال مختلف را درباره استفاده از متد insert در پایتون، بررسی میکنیم.
مثال اول: اضافه کردن عنصر به ابتدای لیست
در این مثال فرض میکنیم که لیستی از قبل موجود است. اکنون عنصری به عنوان ورودی مشخص شده و باید آن را به ابتدای لیست اضافه کنیم.

برای انجام این کار، فقط کافی است که عنصر مشخص شده رابه خانهای با اندیس 0 اضافه کنیم.
در کدهای بالا لیست MyList مشخص شده است. عنصر 11 را به ابتدای این لیست، اضافه میکنیم. بعد از اجرای کدهای بالا خروجی زیر، نمایش داده میشود.
[11, 10, 9, 8, 7]
مشاهده میکنید که عنصر 11 به خانه اول لیست، اضافه شده است. سپس تمام عناصر لیست به اندازه یک واحد به سمت راست منتقل شدند.
مثال دوم: افزودن عنصر به انتهای لیست
در این مثال، لیستی از قبل داده شده است. باید عنصر مشخص شده را به انتهای لیست اضافه کنیم. برای حل این مسئله، کارهای زیر را انجام میدهیم.
- ابتدا اندیس آخرین خانه در لیست را با کمک متد len(MyList) بدست میآوریم.
- سپس مقدار بدست آمده از این متد را همراه با عنصر مورد نظر به متد insert() ارسال میکنیم.
در نتیجه، عنصر داده شده به انتهای لیست اضافه میشود. برای حل مسائل مختلف مربوط به لیستها میتوانیم از انواع متدهای لیست در پایتون استفاده کنیم. پایتون، متدهای بسیار متنوعی برای کار با لیستها فراهم کرده است. به منظور آشنایی با این متدها میتوانید مطلب مربوط به آنها را در مجله فرادرس مطالعه کنید.
در کدهای بالا لیست MyList داده شده است. عدد 10 را به انتهای این لیست اضافه کردیم. بعد از اجرای کدهای بالا، خروجی به شکل زیر نمایش داده میشود.
[5, 6, 7, 8, 9, 10]
عدد 10 به انتهای لیست اضافه شد. این عملیات مانند استفاده از تابع append() در پایتون است.
مثال سوم: وارد کردن مقدار رشتهای به لیست
در این مثال، لیستی از کاراکترهایی با نوع رشته داده شده است. میخواهیم کاراکتر رشتهای دیگری را به این لیست، اضافه کنیم. در متن سوال گفته شده که کاراکتر مورد نظر به خانهای با شماره اندیس 2 اضافه شود. درنتیجه متد insert() رشته داده شده را به سومین خانه در لیست اضافه خواهد کرد.
در کدهای بالا عنصر c را به انتهای لیست MyList اضافه کردهایم. بعد از اجرای کدهای بالا، خروجی به شکل زیر نمایش داده میشود.
['a', 'b', 'c', 'd', 'e']
مثال چهارم: استفاده از اندیس منفی برای وارد کردن عنصر به لیست
در زمان کار با متد insert()، میتوانیم از اندیسهای منفی هم رای وارد کردن داده به لیست، استفاده کنیم. برای مثال استفاده از اندیس -1 عنصر داده شده را به دومین عنصر از آخر لیست اضافه میکند. به همین ترتیب استفاده از اندیس -2 نیز عنصر داده شده را به سومین خانه از آخر لیست اضافه میکند.
در کادر بالا لیست MyList مشخص شده است. عناصر 10 و 11 را با استفاده از اندیسهای -1 و -2 به انتهای این لیست اضافه کردهایم. بعد از اجرای کدهای بالا، خروجی به شکل زیر نمایش داده میشود.
[1, 2, 3, 4, 5, 10, 6] [1, 2, 3, 4, 5, 11, 10, 6]
عناصر 10 و 11 به ترتیب در دومین و سومین خانه از انتهای لیست اضافه شدهاند.

مثال پنجم: افزودن تاپل به لیست
در این مثال، تاپلی ساختهایم که شامل چند مقدار مختلف است. سپس این تاپل را به عنوان عنصر مستقل به ابتدای لیست اضافه کردیم.
در کادر بالا MyList، لیست اصلی برنامه است. تاپل tupl دارای چند مقدار با نوع عدد صحیح است. این تاپل را به صورت عنصر مجزایی به لیست اصلی اضافه کردهایم. بعد از اجرای کدهای بالا، خروجی به شکل زیر نمایش داده میشود.
[(1, 2, 3), 1, 2, 3, 4, 5, 6]
در خروجی برنامه، میتوان مشاهده کرد که تاپل مورد نظر در خانه اول لیست، قرار داده شده است.
مثال ششم: افزودن عنصر با جایگاه مشخصی در اواسط لیست
در این سوال باید مقدار مشخص شده را درست قبل از عدد 5 در لیست، قرار دهیم. به این منظور باید شماره اندیس عدد 5 را بدست بیاوریم. برای حل این سوال از متد index() استفاده میکنیم. متد index() یکی از متدهای لیست در پایتون است. با کمک این متد جایگاه اولین رخداد مقدار مشخص شده را در لیست پیدا میکنیم.
سپس باید از اندیس بدست آمده برای اضافه کردن عدد 5 به لیست استفاده کنیم. در مثال زیر، مقدار 4 را درست قبل از عنصری با مقدار 5 قرار دادهایم.
در مثال بالا MyList لیست اصلی برنامه است. برای افزودن عنصر به این لیست مراحل زیر را انجامی میدهیم.
- ابتدا با استفاده از متد insert() اندیس خانهای را پیدا میکنیم که مقدار 5 در آن قرار دارد.
- سپس عنصر 4 را به این اندیس اضافه میکنیم.
اکنون بقیه عناصر لیست به اندازه یک واحد به سمت راست منتقل میشوند. بعد از اجرای کدهای بالا، خروجی به شکل زیر نمایش داده میشود.
[1, 2, 3, 4, 5, 6]
همینطور که مشاهده میکنید، عدد 4 درست قبل از عدد 5 به لیست اضافه شده است.
یادگیری پایتون به کمک اجرای پروژههای مختلف در فرادرس
زبان پایتون یکی از محبوبترین تکنولوژیهای برنامه نویسی در میان علاقهمندان ورود به بازار کار و دانشجویان است. به همین دلیل، در بخش تولید محتوای فرادرس تلاش کردهایم تا بهترین فیلمهای آموزشی را برای پایتون بسازیم. از موثرترین این فیلمها میتوان به آنهایی اشاره کرد که اجرای پروژههای رایج در دنیای واقعی را یاد میدهند. فرادرس فیلمهای آموزشی پروژهمحور بسیار متنوعی درباره زبانهای برنامه نویسی – بخصوص پایتون – تهیه کرده است. در فهرست زیر، چند مورد از این نوع فیلمهای آموزشی، معرفی شدهاند.
با کلیک بر روی تصویر زیر میتوانید به صفحه اصلی این مجموعه آموزشی هدایت شده و فیلمهای پروژهمحور بیشتری را نیز بررسی کنید.

جمعبندی
در این مطلب از مجله فرادرس با متد insert() آشنا شدیم. این متد، یکی از متدهای درونی پایتون است. متد insert() برای کار بر روی ساختار لیست طراحی شده است. از متد insert در پایتون برای قرار دادن عنصر داده شده در جایگاه مشخص استفاده میشود. سینتکس این متد به صورت My_list.insert(index, element) نوشته میشود. این سینتکس دارای دو پارامتر مهم index و element است. بعد از اجرای متد insert() هیچ مقداری در خروجی برگشت داده نمیشود. در صورت استفاده از متد insert() بر روی هر شیئی به غیر از لیست، مفسر پایتون، پیغام خطای AttributeError را اعلام میکند.
از این متد میتوان با روشهای مختلفی استفاده کرد. در بخشهای بالایی مطلب، برای هر کدام از این روشها مثالی آورده شده است. متد insert() میتواند هر مقداری را با هر نوعی به لیست اضافه کند. برنامه نویسان پایتون برای اجرای حرفهای مسائل مرتبط با لیست لازم است بتوانند با این متد کار کنند.
source