Itertools הוא אחד המודולים השימושיים ביותר ש-Python מספקת. הפונקציות שלו הופכות את העבודה עם רשימות ומערכים בקלות. בין אם אתה צריך את כל התמורות של הערכים במערך, או שאתה רוצה לקבץ תווים ממחרוזת, Itertools יכול לעזור.

כתיבת הקוד עבור מקרים נפוצים כאלה עלולה להיות מייגעת ונוטה לשגיאות. לפיכך, מפתחים בנו ספריות כדי לעשות את כל זה עבורך. אתה יכול להשתמש בפונקציות אלה על ידי ייבוא ​​Itertools. במאמר זה תלמדו על מודול Itertools ב-Python והפונקציות שלו.

הרשמי פִּיתוֹן התיעוד מסביר כי Itertools מכיל קוד לבניית איטרטורים. מודול זה מספק פונקציות מהירות ויעילות לעבודה עם רשימות ומערכים.

לפני השימוש במודול זה, עליך לייבא אותו באמצעות התחביר הבא:

ייבוא ​​itertools

ישנם שלושה סוגים שונים של איטרטורים במודול זה.

  1. איטרטורים אינסופיים
  2. איטרטורים קומבינטוריים
  3. סיום איטרטורים

איטרטורים אינסופיים

איטרטורים אינסופיים יכולים להפעיל לולאה אינסופית. פונקציות אלה פועלות לעתים קרובות יותר באמצעות a עבור לולאה. ישנם שלושה איטרטורים אינסופיים.

1. ספירה (התחלה, שלב)

ה לספור() הפונקציה לוקחת שני פרמטרים: ה הַתחָלָה

instagram viewer
וה שלב. הלולאה מתחילה מערך ההתחלה ומחזירה ערכים שעולים לפי שלב, שברירת המחדל היא 1. שקול את הדוגמה המפורטת להלן: הלולאה מתחילה מ-2 ותוסיף 2 בכל פעם. הלולאה נשברת כאשר הערך של אני הופך ל-10.

עבור i ב-itertools.count (2,2):
אם אני == 10:
לשבור
אַחֵר:
הדפס (i, end=" ")

תְפוּקָה:

2 4 6 8 

2. חזרה (מספר, פעמיםToRepeat)

ה חזור() הפונקציה מקבלת שני פרמטרים. הראשון הוא ערך שהפונקציה מפיקה שוב ושוב. הפרמטר השני הוא מספר הפעמים שהמספר צריך לחזור. אם לא תציין את הפרמטר השני, הלולאה תפעל ללא סוף.

עבור i ב-itertools.repeat (2,5):
הדפס (i, end=" ")

תְפוּקָה:

2 2 2 2 2 

3. מחזור (קלט)

ה מחזור() הפונקציה חוזרת דרך הקלט ומדפיסה פריטים בודדים בסדר נתון. כאשר הוא מגיע לסוף הקלט שלו, מחזור מתחיל מחדש מההתחלה.

c = 0
var = "12345"
עבור i ב-itertools.cycle (var):
אם c == 12:
לשבור
אַחֵר:
c = c + 1
הדפס (i, end=" ")

תְפוּקָה:

1 2 3 4 5 1 2 3 4 5 1 2

איטרטורים קומבינטוריים

האיטרטורים הקומבינאטוריים מספקים פונקציות לביצוע תמורות, שילובים ומוצרים קרטזיניים.

1. מוצר (קלט)

ה מוצר() הפונקציה מחשבת את המכפלה הקרטזיאנית של הקלט שצוין. יש לו פרמטר חוזר שמחשב את המכפלה הקרטזיאנית של איטרטור עם עצמו. זה פרמטר אופציונלי.

מערך = [1,2,3]
הדפס (רשימה (itertools.product (מערך, חזרה=2)))
מחרוזת = "ABC"
הדפס (רשימה (itertools.product (מחרוזת, "XYZ")))

תְפוּקָה:

דוגמה 1 [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
דוגמה 2 [('A', 'X'), ('A', 'Y'), ('A', 'Z'), ('B', 'X'), ('B', 'Y '), ('B', 'Z'), ('C', 'X'), ('C', 'Y'), ('C', 'Z')]

2. תמורות (קלט, גודל)

פונקציה זו מחזירה טופלה של כל התמורות של האיטרבל הנתון. הוא מקבל שני פרמטרים: החזרה וגודל הקבוצה. אם לא צוין גודל הקבוצה, היא תיצור קבוצות באורך זהה לזה של החזרה עצמה.

arr = [1,2,3,4]
הדפס (רשימה (itertools.permutations (arr, 2)))

תְפוּקָה:

[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]

קָשׁוּר: פונקציות Python שכדאי להכיר

3. שילובים (קלט, אורך)

ה שילובים() הפונקציה עוזרת לחשב את השילובים של האיטרטור הנתון. שימו לב שפונקציה זו שומרת על סדר הפריטים של הקלט שלה. בזמן תמורות כולל ערכים שנבדלים רק לפי סדר, שילובים מייצר ערכים ייחודיים.

arr = [1,2,3,4]
הדפס (רשימה (itertools.combinations (arr, 3)))

תְפוּקָה:

[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]

סיום איטרטורים

איטרטורים מסיימים מייצרים פלט בהתבסס על התנאים שניתנו לקלט. אתה יכול להבין את זה בצורה הטובה ביותר מכמה פונקציות לדוגמה.

1. לצבור (קלט, אופרטור)

ה לִצְבּוֹר() הפונקציה מקבלת שני ארגומנטים: איטרבל ואופרטור. הוא מייצר פלט על ידי החלת האופרטור על סך מצטבר וכל רכיב קלט בתורו. האופרטור הוא ארגומנט אופציונלי. אם לא תעבור את זה, פונקציה זו תבצע הוספה.

מפעיל יבוא
arr = [1,2,3,4]
הדפס (רשימה (itertools.accumulate (arr)))
הדפס (רשימה (itertools.accumulate (arr, operator.sub)))

תְפוּקָה:

[1, 3, 6, 10]
[1, -1, -4, -8]

2. מפת כוכבים (פונקציה, קלט)

ה starmap() הפונקציה מקבלת פונקציה ורשימת tuple כארגומנטים שלה. הוא מחשב ערכי החזרה על ידי החלת הפונקציה על כל tuple בקלט. בדוגמה שניתנה, פונקציה זו תחשב את הערך המרבי של כל tuple ותחזיר אותו במערך.

arr = [(1,2,3), (4,5,6), (7,8,9)]
הדפס (רשימה (itertools.starmap (max, arr)))

תְפוּקָה:

[3, 6, 9]

קָשׁוּר: כיצד ליצור ולהשתמש ב- Tuples ב- Python

3. filterfalse (פונקציה)

ה filterfalse() function מחזירה ערכים שאינם עומדים בתנאי בפונקציה שעברה. הקוד המופיע להלן מסיר את כל הערכים האי-זוגיים.

arr = [1,2,3,4]
הדפס (רשימה (itertools.filterfalse (lambda x: x % 2 != 0, arr)))

תְפוּקָה:

[2, 4]

המשך את מסע הקידוד לפייתון שלך

כעת, לאחר שלמדת על מודול Itertools, הגיע הזמן לחקור מודולים אחרים של Python. לפייתון יש מודולים וספריות למגוון רחב של משימות. הם כוללים מושגים מתקדמים כמו טרנספורמציה של פורייה ויישומי AI/ML.

חלק מהמודולים מסובכים יותר מאחרים וייקח יותר זמן ללמוד אותם. מודול Tkinter מאפשר לך לבנות יישומי GUI מלאים ב-Python.

כיצד לבנות מחשבון ב-Tkinter

שפר את כישורי Python Tkinter שלך עם פרויקט מתחיל זה.

קרא הבא

לַחֲלוֹקצִיוּץאימייל
נושאים קשורים
  • תִכנוּת
  • תִכנוּת
  • פִּיתוֹן
על הסופר
Unnati Bamania (11 מאמרים שפורסמו)

Unnati הוא מפתח Full stack נלהב. היא אוהבת לבנות פרויקטים תוך שימוש בשפות תכנות שונות. בזמנה הפנוי היא אוהבת לנגן בגיטרה וחובבת בישול.

עוד מאת Unnati Bamania

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים טכניים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחץ כאן כדי להירשם