| کانال توسعه‌دهندگان پایتون |
6.69K subscribers
41 photos
2 videos
4 files
43 links
⭕️ کانال توسعه‌دهندگان پایتون دولوپیکس

💠 دولوپیکس | جامعه توسعه‌دهندگان ایرانی

💎 @Developix
🚀 Developix.ir

📌 پشتیبانی و تبلیغات:
@DevelopixSupport
Download Telegram
🔶 ماژول itertools توابعی را در اختیار قرار می‌دهد که به شما امکان ایجاد ایتریتورهای مختلف و کارهایی را که معمولا با استفاده از حلقه‌های while و for انجام می‌شوند، به راحتی و با کمترین کد ممکن را می‌دهد.

🔷 این ماژول همچنین کلاس‌هایی دارد که به شما امکان می‌دهد دو یا چند ایتریتور را ترکیب یا فیلتر کنید، ترتیب عناصر را تغییر دهید و بسیاری از عملیات‌های دیگر را بر روی ایتریتورها انجام دهید.

در کل، Itertools یک ابزار بسیار کارآمد و پرکاربرد است که به شما کمک می‌کند تا کد خود را بهینه‌تر کنید و در نتیجه عملکرد آن را بهبود بخشید.


🔸 در ادامه، به توضیح هر یک از اجزای ماژول itertools می‌پردازیم.

#itertools #iterable #iterator #Module

✍🏻 *ژنرال*

💎 Channel: @DevelopixPython
👍4🔥3
🔸 توضیح اجزای ماژول itertools
🔹 پارت یک

🔘 itertools.count(start, step)
🔸 کلاس count یک شمارنده ایجاد می کند که به طور پیش‌فرض از عدد صفر شروع می کند و به طور پیوسته به بی نهایت ادامه پیدا می کند.
🔹این کلاس در پایتون دو پارامتر اختیاری به نام‌های start و step دارد. پارامتر start مشخص می‌کند از کدام عدد باید شروع به تولید دنباله کنیم و پارامتر step تعداد فاصله‌های بین اعداد را تعیین می‌کند.

💡مثال
counter = itertools.count(30, 10)

print(next(counter)) # 30
print(next(counter)) # 40
print(next(counter)) # 50


🔘 itertools.cycle(iterable)
🔸 کلاس cycle یک iterator برای تکرار یک iterable به صورت بی‌نهایت ایجاد می‌کند.
🔹در پایتون، iterable ها نمی‌توانند تکرارپذیر باشند و برای دوباره استفاده از آن‌ها، باید iterable ها را مجدداً تعریف کرد. اما با استفاده از کلاس cycle می‌توانید به سادگی این محدودیت را نادیده بگیرید و iterable را به صورت یک حلقه نامتناهی تکرار کنید.

💡مثال
cycle = itertools.cycle([1, 2])

print(next(cycle)) # 1
print(next(cycle)) # 2
print(next(cycle)) # 1


🔘 itertools.chain(*iterables)
🔸کلاس chain دو یا چند iterable را به عنوان ورودی می‌گیرد و آن‌ها را به صورت پشت سر هم در یک iterator واحد قرار می‌دهد.

💡مثال
iterator = itertools.chain([1, 2, 3], [4, 5, 6])

for item in iterator:
print(item) # 1, 2, ..., 6

#itertools #iterable #iterator #Module

✍🏻 *ژنرال*

💎 Channel: @DevelopixPython
👍3🔥2
🔸 توضیح اجزای ماژول itertools
🔹 پارت دو

🔸 کلاس repeat یک شیء و یک تعداد بار تکرار را به عنوان ورودی می‌گیرد و تکرار این مقدار را به تعداد مشخص شده تولید می‌کند.
🔹اگر به عنوان پارامتر times مقداری داده نشود، شیء داده شده برای بی‌نهایت بار تکرار خواهد شد.

💡مثال
iterator = itertools.repeat("AnyObject", 2)

for item in iterator:
print(item) # AnyObject, AnyObject


🔘 itertools.compress(data, selectors)
🔸کلاس compress یک iterable معمولی و یک iterable از مقادیر بولین با طول برابر (با تعداد مقادیر iterable اولیه) را به عنوان ورودی می‌گیرد و فقط مقادیری را که در مقابل هر مقدار بولینی که در ورودی داده شده است True هستند، در یک iterator تولید می‌کند.


💡مثال
values = ("A", "B", "C")
bools = (True, False, True)

iterator = itertools.compress(values, bools)

for item in iterator:
print(item) # A, C


🔘 itertools.filterfalse(predicate, iterable)
🔸کلاس filterfalse یک iterator و یک تابع پذیرنده گرفته و همانند تابع filter عمل می کند، با این تفاوت که در جایگاه شرط منفی تابع پذیرنده قرار می‌گیرد.

💡مثال
iterator = itertools.filterfalse(
lambda n: n % 2 == 0,
[1, 2, 3, 4, 5]
)

for item in iterator:
print(item) # 1, 3, 5

#itertools #iterable #iterator #Module

✍🏻 *ژنرال*

💎 Channel: @DevelopixPython
👍2🔥2