אוספים בפייתון: כל מה שאתה צריך לדעת על אוספי פיתון



בלוג זה יכסה את סוגי נתוני האוסף המובנים בפייתון יחד עם מודול האוספים עם כל מבני נתוני האוסף המיוחדים.

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

מהם האוספים בפייתון?

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





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

  • Tuple הוא מסודר ובלתי משתנה באופיו, אם כי רשומות כפולות יכולות להיות שם בתוך tuple.



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

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

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



מבני נתוני איסוף מיוחדים

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

  1. namedtuple ()
  2. ו
  3. מפת שרשרת
  4. דֶלְפֵּק
  5. OrderedDict
  6. ברירת מחדל
  7. UserDict
  8. רשימת משתמש
  9. UserString

namedtuple ()

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

איך זה עובד?

קודם כל, עליך לייבא מודול אוספים, זה לא דורש התקנה.

מייבוא ​​אוספים בשם tuple

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

a = namedtuple ('קורסים', 'שם, טק') s = a ('מדע נתונים', 'פיתון') הדפסה (ים) # הפלט יהיה קורסים (שם = 'פיתון', טק = 'פיתון')

כיצד ליצור שם בשם זוג באמצעות רשימה?

s._make (['data science', 'python']) # הפלט יהיה זהה לקודם.

ו

deque מבוטא כ'סיפון 'היא רשימה מותאמת לביצוע הכנסה ומחיקה בקלות.

איך זה עובד?

# יצירה של דק מתוך אוספים ייבוא ​​של deque a = ['d', 'u', 'r', 'e', ​​'k'] a1 = deque (a) הדפס (a1) # הפלט יהיה deque ([' d ',' u ',' r ',' e ',' k '])

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

a1.append ('a') הדפס (a1) # הפלט יהיה deque (['d', 'u', 'r', 'e', ​​'k', 'a']) a1.appendleft (' e ') הדפס (a1) # הפלט יהיה דק ([' e ',' d ',' u ',' r ',' e ',' k ',' a '])

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

a1.pop () הדפס (a1) # הפלט יהיה deque (['e', 'd', 'u', 'r', 'e', ​​'k']) a1.popleft () הדפס (a1 ) # הפלט יהיה דק (['d', 'u', 'r', 'e', ​​'k'])

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

ChainMap

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

איך זה עובד?

מיין מערך c ++
מאוספים מייבא ChainMap a = {1: 'edureka', 2: 'python'} b = {3: 'science science', 4: 'learning machine'} c = ChainMap (a, b) print (c) #the הפלט יהיה ChainMap [{1: 'edureka', 2: 'python'}, {3: 'science science', 4: 'learning machine'}]

כדי לגשת או להכניס אלמנטים אנו משתמשים במקשים כאינדקס. אך כדי להוסיף מילון חדש ב- ChainMap אנו משתמשים בגישה הבאה.

a1 = {5: 'AI', 6: 'רשתות עצביות'} c1 = c.new_child (a1) הדפס (c1) # הפלט יהיה ChainMap [{1: 'edureka', 2: 'python'}, { 3: 'מדע נתונים', 4: 'למידת מכונה'}, {5: 'AI', 6: 'רשתות עצביות'}]

דֶלְפֵּק

זהו תת-מחלקה מילונית המשמשת לספירת אובייקטים שונאיים.

איך זה עובד?

מאוספים מייבא מונה a = [1,1,1,1,2,3,3,4,3,3,4] c = מונה (א) הדפסה (c) # הפלט יהיה מונה = ({1: 4, 2: 1, 3: 4, 4: 2})

בנוסף לפעולות שאתה יכול לבצע במילון המילון יש 3 פעולות נוספות שנוכל לבצע.

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

OrderedDict

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

איך זה עובד?

מייבוא ​​אוספים OrderedDict od = OrderedDict () od [1] = 'e' od [2] = 'd' od [3] = 'u' od [4] = 'r' od [5] = 'e' od [6] = 'k' מ- [7] = 'הדפסה' מ- # הפלט יוזמן לדיקט [(1, 'e'), (2, 'd'), (3, 'u'), (4, 'r'), (5, 'e'), (6, 'k'), (7, 'a')]

לא משנה איזה ערך נכנס למילון, ה- OrderedDict זוכר את הסדר בו הוא הוכנס ומקבל את הפלט בהתאם. גם אם נשנה את ערך המפתח. נניח, אם נשנה את ערך המפתח 4 ל- 8, הסדר לא ישתנה בפלט.

ברירת מחדל

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

איך זה עובד?

מאוספים ייבא defaultdict d = defaultdict (int) # עלינו לציין גם סוג. d [1] = 'edureka' d [2] = 'הדפסת' פייתון '(d [3]) # זה ייתן את הפלט כ- 0 במקום keyerror.

UserDict

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

אוספי כיתות. Userict ([initialdata])

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

רשימת משתמש

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

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

אוספי כיתות. משתמש רשימה ([רשימה])

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

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

יש לך שאלות? הזכר אותם בתגובות ונחזור אליך בהקדם האפשרי.