ماژول itertools

  • مدرس: علی بیگدلی
  • تاریخ انتشار: Aug 24, 2020

آشنایی با ماژول itertools

ماژول itertools یک کتابخانه استاندارد است که شامل چندین توابع است که در برنامه نویسی کاربردی مفید هستند. یک نوع عملکردی که تولید می کند، تکرار کننده های بی نهایت است. شمارش تابع بطور بی نهایت از یک مقدار محاسبه می شود. چرخه تابع بی نهایت از طریق یک تکرار (به عنوان مثال یک لیست یا رشته) تکرار می شود. تابع تکرار را، به صورت بی نهایت و یا تعداد مشخصی از دفعات تکرار می کند. مثال:

from itertools import count

for i in count(3):
  print(i)
  if i >=11:
    break

خروجی:

>>>
3
4
5
6
7
8
9
10
11
>>>

عملکردهای زیادی در itertools ها وجود دارد که بر روی آن کار می کنند،همچون map و filter. بعضی مثالها: takewhile - موارد را از یک تکرار طول می گیرد در حالی که یک تابع پیش بینی شده True می شود؛ Chain - چند iterable را با هم ترکیب و یک بزرگترش را می سازد. accumulate - یک مقدار مجموع از تمام ارزش های در حال اجرا باز می گرداند.

from itertools import accumulate, takewhile

nums = list(accumulate(range(8)))
print(nums)
print(list(takewhile(lambda x: x<= 6, nums)))

خروجی:

>>>
[0, 1, 3, 6, 10, 15, 21, 28]
[0, 1, 3, 6]
>>>

همچنین توابع ترکیبی چندگانه در intertool وجود دارد، مانند محصول و جایگزینی. اینها هنگامی استفاده می شود که شما می خواهید یک کار را با تمام ترکیبات ممکن از برخی موارد انجام دهید. مثال:

from itertools import product, permutations

letters = ("A", "B")
print(list(product(letters, range(2))))
print(list(permutations(letters)))

خروجی:

>>>
[('A', 0), ('A', 1), ('B', 0), ('B', 1)]
[('A', 'B'), ('B', 'A')]
>>>
ثبت دیدگاه
نام *
ایمیل*
دیدگاه *
4دیدگاه
  • آرمان عباسی
    2 weeks, 4 days ago

    سلام آقای بیگدلی ممنون از آموزش کاربردیتان بنده در تلاش بودم تا یک برنامه بنویسم ولی در یکجا به مشکل برخوردم بنده میخوام اگر یک شرط برقرار بود بره از اول فایل رو بخونه و بیاد جلو برای اینکار باید چیکار کنم باتشکر؟

    • علی بیگدلی
      2 weeks, 3 days ago

      می تونید فایلی که مد نظرتون هستش رو با در نظر گرفتن دستور subproccess و تحت command line مجدد فراخونی کنید

  • علیرضا
    2 months, 3 weeks ago

    سلام و عرض ادب خسته نباشید
    چطور میشه برنامه ای درست کرد که از کاربر مقدار پولی رو بگیره (مثلا 60000 تومن) بعد تمام حالت های ممکن
    پرداخت اون با اسکناس 50000 و 10000 و 5000 تومن رو به ما نمایش بده؟

    • علی بیگدلی
      2 months, 2 weeks ago

      قطعا نمی تونم اینجا توضیح بدم و بهتره که قبلش کمی جست و جو کنین اینترنت رو چون برنامه ای که می خواید مشابه زیاد داره