ماژول itertools

  • مدرس: علی بیگدلی
  • تاریخ انتشار: 1402/05/03
  • تعداد بازدید: 151

آشنایی با ماژول 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')]
>>>