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

سرور مجازی NVMe

تابع zip() Python

0 61
زمان لازم برای مطالعه: 3 دقیقه


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

این zip() تابع یک تابع داخلی پایتون است که به ما اجازه می دهد عناصر مربوطه را از چندین دنباله در یک واحد ترکیب کنیم لیست تاپل ها. دنباله ها آرگومان های پذیرفته شده توسط zip() تابع. هر تعداد دنباله ای را می توان ارائه کرد، اما رایج ترین مورد استفاده ترکیب عناصر متناظر در دو دنباله است.

برای مثال، فرض کنید دو لیست زیر را داریم:

>>> vehicles = ('unicycle', 'motorcycle', 'plane', 'car', 'truck')
>>> wheels = (1, 2, 3, 4, 18)

ما می توانیم استفاده کنیم zip() تابع برای مرتبط کردن عناصر از این دو لیست بر اساس روی سفارش آنها:

>>> list(zip(vehicles, wheels))
(('unicycle', 1), ('motorcycle', 2), ('plane', 3), ('car', 4), ('truck', 18))

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

نکته مهمی که باید به آن توجه داشت این است که اگر دنباله های ورودی دارای طول های متفاوتی باشند، zip() فقط تا زمانی که به انتهای کوتاهترین لیست برسد، عناصر را مطابقت خواهد داد. مثلا:

>>> vehicles = ('unicycle', 'motorcycle', 'plane', 'car', 'truck')
>>> wheels = (1, 2, 3)
>>> list(zip(vehicles, wheels))
(('unicycle', 1), ('motorcycle', 2), ('plane', 3))

از آنجا که wheels لیست در این مثال کوتاهتر است (3 مورد در مقابل 5 مورد که vehicles دارد)، دنباله در “صفحه” متوقف شد.

همانطور که قبلا ذکر شد، zip() تابع را می توان با بیش از دو دنباله استفاده کرد:

>>> vehicles = ('unicycle', 'motorcycle', 'plane', 'car', 'truck')
>>> wheels = (1, 2, 3, 4, 18)
>>> energy_sources = ('pedal', 'gasoline', 'jet fuel', 'gasoline', 'diesel')
>>> list(zip(vehicles, wheels, energy_sources))
(('unicycle', 1, 'pedal'), ('motorcycle', 2, 'gasoline'), ('plane', 3, 'jet fuel'), ('car', 4, 'gasoline'), ('truck', 18, 'diesel'))

یکی از دلایل اتصال چندین توالی مانند این، ایجاد یک روش تمیزتر برای تکرار روی موارد در چندین توالی است. بدون zip() تابع، ما باید چیزی شبیه به این انجام دهیم:

>>> for i in range(len(vehicles)):
...     print('A ' + vehicles(i) + ' has ' + str(wheels(i)) + ' wheels and runs روی ' + energy_sources(i))
...
A unicycle has 1 wheels and runs روی pedal
A motorcycle has 2 wheels and runs روی gasoline
A plane has 3 wheels and runs روی jet fuel
A car has 4 wheels and runs روی gasoline
A truck has 18 wheels and runs روی diesel

اما با zip() تابع ما می توانیم از نحو پاک کننده زیر از طریق باز کردن بسته بندی تاپل استفاده کنیم:

>>> for v, w, es in zip(vehicles, wheels, energy_sources):
...     print('A ' + v + ' has ' + str(w) + ' wheels and runs روی ' + es)
...
A unicycle has 1 wheels and runs روی pedal
A motorcycle has 2 wheels and runs روی gasoline
A plane has 3 wheels and runs روی jet fuel
A car has 4 wheels and runs روی gasoline
A truck has 18 wheels and runs روی diesel

یک چیز آخر برای درک در مورد zip() تابع این است که در واقع an را برمی گرداند اشاره گر، نه a فهرست از تاپل ها توجه داشته باشید که در دو مثال اول ما در بالا، ما را بسته بندی کردیم zip() عملکرد در داخل list() تایپ کنید تا نتیجه به لیست تبدیل شود. اگر بخواهیم مقدار برگشتی the را نمایش دهیم zip() عملکرد مستقیم ما چیزی شبیه به این را خواهیم دید:

>>> zip(vehicles, wheels)
<zip object at 0x1032caf48>

این “زیپ شی” یک نمونه تکرارپذیر از است Zip class، به این معنی که محتویات خود را یک به یک در یک حلقه for برمی گرداند، به جای همه یکباره، روشی که یک لیست انجام می دهد. این برای توالی‌های بزرگی که در صورت دسترسی به یک‌باره، حافظه زیادی دارند، کارآمدتر است.

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

درباره نویسنده

این مقاله توسط Jacob Stopak، مشاور و توسعه‌دهنده نرم‌افزار با علاقه به کمک به دیگران برای بهبود زندگی خود از طریق کد نوشته شده است. یعقوب خالق است تعهد اولیه – سایتی اختصاص داده شده برای کمک به توسعه دهندگان کنجکاو در یادگیری روش کدگذاری برنامه های مورد علاقه آنها. پروژه برجسته آن به مردم کمک می کند Git را یاد بگیرید در سطح کد

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



منتشر شده در 1403-01-22 14:15:03

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

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

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