5 הדרכים הטובות ביותר ליצור רשימה של מילונים ב- Python – היו בצד הנכון של השינוי

פרסומת
MAGNEZIX מגנזיקס


💡 ניסוח בעיה: לעתים קרובות ב-Python, אנחנו צריכים לארגן נתונים באופן שמצמיד כל מפתח לערך תואם, מה שהופך את המילונים למבנה האידיאלי. עם זאת, כאשר צריך לאחסן מספר רשומות כאלה, רשימה של מילונים הופכת חיונית. מאמר זה פותר את הבעיה של מניפולציה של אוסף רשומות כגון [{‘name’: ‘Alice’, ‘age’: 25}, {‘name’: ‘Bob’, ‘age’: 30}, …] על ידי הצגת שיטות שונות ליצירת רשימה של מילונים ב-Python.

פרסומת

שיטה 1: שימוש בלולאה והוסף

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

הנה דוגמה:

list_of_dicts = []
for i in range(5):
    list_of_dicts.append({'id': i, 'square': i**2})

print(list_of_dicts)

תְפוּקָה:

[{'id': 0, 'square': 0}, {'id': 1, 'square': 1}, {'id': 2, 'square': 4}, {'id': 3, 'square': 9}, {'id': 4, 'square': 16}]

קטע קוד זה מתחיל באתחול רשימה ריקה. הלולאה עוברת מ-0 ל-4, ובכל איטרציה היא מצרף מילון חדש לרשימה, המכיל 'מזהה' וה'ריבוע' שלו. זה קל להבנה ולשליטה, במיוחד עבור אלה שחדשים ב-Python.

שיטה 2: הבנת רשימה

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

הנה דוגמה:

list_of_dicts = [{'id': i, 'square': i**2} for i in range(5)]
print(list_of_dicts)

תְפוּקָה:

[{'id': 0, 'square': 0}, {'id': 1, 'square': 1}, {'id': 2, 'square': 4}, {'id': 3, 'square': 9}, {'id': 4, 'square': 16}]

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

שיטה 3: שימוש ב- map() פוּנקצִיָה

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

הנה דוגמה:

list_of_dicts = list(map(lambda i: {'id': i, 'square': i**2}, range(5)))
print(list_of_dicts)

תְפוּקָה:

[{'id': 0, 'square': 0}, {'id': 1, 'square': 1}, {'id': 2, 'square': 4}, {'id': 3, 'square': 9}, {'id': 4, 'square': 16}]

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

שיטה 4: שימוש ב- dict() פונקציה וזיפ

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

הנה דוגמה:

keys = ['id', 'square']
values = [[i, i**2] for i in range(5)]

list_of_dicts = [dict(zip(keys, v)) for v in values]
print(list_of_dicts)

תְפוּקָה:

[{'id': 0, 'square': 0}, {'id': 1, 'square': 1}, {'id': 2, 'square': 4}, {'id': 3, 'square': 9}, {'id': 4, 'square': 16}]

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

שיטת בונוס One Liner 5: שימוש בגנרטור

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

הנה דוגמה:

list_of_dicts = list({'id': i, 'square': i**2} for i in range(5))
print(list_of_dicts)

תְפוּקָה:

[{'id': 0, 'square': 0}, {'id': 1, 'square': 1}, {'id': 2, 'square': 4}, {'id': 3, 'square': 9}, {'id': 4, 'square': 16}]

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

סיכום/דיון

  • שיטה 1: שימוש בלולאה והוסף. אינטואיטיבי וקל למתחילים. חסרון: יכול להיות מילולי במקרים פשוטים.
  • שיטה 2: הבנת רשימה. קומפקטי ופיתוני. חסרון: עשוי להיות פחות קריא עבור היגיון מורכב.
  • שיטה 3: משתמש ב map() פוּנקצִיָה. סגנון תכנות פונקציונלי. נגד: חלקם מוצאים map() פחות אינטואיטיבי מאשר הבנה.
  • שיטה 4: משתמש ב dict() פונקציה וזיפ. נקי וקריא עבור נתונים מקבילים. חסרון: דורש שהנתונים יהיו מאורגנים היטב מראש.
  • שיטה 5: שימוש בגנרטור. חסכוני בזיכרון עבור מערכי נתונים גדולים. חסרון: מעט פחות פשוט מהבנת רשימה עבור מערכי נתונים קטנים.



קישור לכתבת המקור – 2024-02-22 15:55:48

Facebook
Twitter
LinkedIn
Telegram
WhatsApp
Email
פרסומת
X-ray_Promo1

עוד מתחומי האתר