از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
تابع zip() Python
در این مقاله روش استفاده از پایتون داخلی را بررسی خواهیم کرد 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