وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

append() vs extend() vs insert() در لیست های پایتون

0 9
زمان لازم برای مطالعه: 4 دقیقه


افزودن عناصر به یک لیست

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

هنگامی که یک لیست را ایجاد می کنیم، اغلب اوقات ممکن است لازم باشد عناصر جدیدی را به آن اضافه کنیم، چه در پایان، چه در ابتدا یا جایی در بین. پایتون سه روش مختلف را برای این کار به ما ارائه می دهد. در این مقاله من تفاوت های بین آن ها را نشان خواهم داد append، extend، و insert لیست روش ها

اضافه کنید

این روش یک عنصر را در انتهای لیست موجود اضافه می کند. نحو استفاده از آن عبارت است از:

a.append(x)

در اینجا متغیر است a لیست ما است و x عنصری برای اضافه کردن است. این عبارت معادل است a(len(a):) = (x).

برای مثال، در اینجا روش استفاده از آن برای قرار دادن عنصر “y” در انتهای لیست آمده است. a:

a = (1, 'x', 2)
a.append('y')

print(a)

با اجرای این کد خروجی زیر حاصل می شود:

$ python append.py
(1, 'x', 2, 'y')

درج کنید

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

a.insert(i, x)

اینجا بحث i شاخص عنصر است قبل از که عنصر را وارد کنید x. بدین ترتیب، a.insert(len(a), x) همان چیزی است که a.append(x). اگرچه، قدرت این روش در استفاده از آن برای قرار دادن موارد در جایی در لیست و نه در انتهای آن است. اگر فقط لازم بود یک عنصر را به انتهای لیست اضافه کنید append برای آن خوب کار می کند و سریعتر است (که برای لیست های بزرگ مهم است).

مثلا:

a = (1, 'x', 'y')
a.insert(2, 2)

print(a)

این کد خروجی زیر را به همراه خواهد داشت:

$ python insert.py
(1, 'x', 2, 'y')

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

توسعه دادن، گسترش

این روش با اضافه کردن، عناصر را به یک لیست اضافه می کند (به جمع آن توجه کنید!) روی تمام عناصر تکرارپذیر را به آن منتقل می کنید. لیست به دست آمده یکی است که شامل تمام عناصر هر دو لیست است.

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

نحو استفاده از این روش به صورت زیر است:

a.extend(x)

در این مورد a لیست ما است و x یک شیء تکرارپذیر است، مانند لیست دیگری. این روش معادل است a(len(a):) = x.

مثلا:

a = (1, 'x', 'y')
b = (1, 2)
a.extend(b)

print(a)

با اجرای این کد خروجی زیر حاصل می شود:

$ python extend.py
(1, 'x', 'y', 1, 2)

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

در پایتون نیز می توانید با یک جمع ساده به همان نتایج برسید. بنابراین a + b، در این مورد، دقیقاً همان آرایه اسکریپت ما را در بالا ایجاد می کند. این به لطف __add__() روشی که در لیست ها اجرا می شود، اما خارج از محدوده این مقاله است.

مقایسه هر روش

برای مشاهده نتایج مختلف به دست آمده از این روش ها، اجازه دهید با اجرای کد زیر یک مقایسه مستقیم انجام دهیم:

a1 = (1, 'x', 'y')
a2 = (1, 'x', 'y')
a3 = (1, 'x', 'y')

b = (2, 3)

a1.append(b)
a2.insert(3, b)
a3.extend(b)

print(a1)
print(a2)
print(a3)

در این برنامه سه لیست با عناصر دقیقا مشابه تعریف کرده ایم. ما همچنین یک لیست دوم تعریف کرده ایم که آن را به هر یک از سه لیست مشابه که قبلاً تعریف شده بود، اضافه می کنیم، درج می کنیم و گسترش می دهیم. نتیجه به شرح زیر است:

$ python all.py
(1, 'x', 'y', (2, 3))
(1, 'x', 'y', (2, 3))
(1, 'x', 'y', 2, 3)

همانطور که می بینیم، هر دو append و insert لیست را اضافه کنید b به لیست اولیه، اما به عنوان یک عنصر واحد، که یک لیست است. به عبارت دیگر، هر عنصر را اضافه نمی کند b به صورت جداگانه، اما در عوض خود کل شی را اضافه می کند.

پیشنهاد می‌کنیم بخوانید:  مقدمه ای بر ماژول Pickle Python

را extend روش، روی از سوی دیگر، در واقع عناصر فردی لیست را اضافه می کند b، به عنوان عناصر جداگانه و منحصر به فرد لیست حاصل.

همه اینها با آنچه قبلاً دیدیم مطابقت دارد، یعنی append و insert فقط یک عنصر را اضافه کنید در حالیکه، extend، گسترش می یابد روی فهرست اولیه با افزودن عناصر لیست دوم در انتهای آن.

تفاوت دیگری که باید در نظر گرفت، اندازه گیری کارایی است. با توجه به اینکه هر عملیات چگونه کار می کند، می توانیم به راحتی پیچیدگی زمانی هر روش را بفهمیم. یا فقط می توانید تقلب کنید و آن را بررسی کنید پیچیدگی زمانی page روی pythonویکی .org page.

پیچیدگی های زمانی به شرح زیر است:

روش پیچیدگی زمانی
append() O (1)
insert() بر)
extend() خوب)

در اینجا “n” تعداد عناصر موجود در لیست است و “k” تعداد عناصر موجود در شی پارامتر است.

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

  • اگر بخواهیم یک عنصر را در انتهای یک لیست اضافه کنیم، باید از آن استفاده کنیم append. سریعتر و مستقیم تر است.
  • اگر بخواهیم عنصری را در جایی در لیست اضافه کنیم، باید از آن استفاده کنیم insert. این تنها گزینه برای این است.
  • اگر بخواهیم عناصر تکرارشونده دیگری را در لیست خود ترکیب کنیم، باید از آن استفاده کنیم extend.

بسته بندی

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

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-29 12:38:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید