שיעורי מודול (2/4)
הבנת כתיב וקבע
אותו תחביר המשמש להבנת רשימה עובד גם לבנייה ערכי dict וset - אתה פשוט משנה את הסוגריים.
הבנת הדיקטים
תחביר: {key: value for element in iterable}.
quadrati = {n: n * n for n in range(5)}
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}דפוס נפוץ: הפוך רשימה של tuples לdict.
coppie = [("a", 1), ("b", 2), ("c", 3)]
d = {k: v for k, v in coppie}
# {'a': 1, 'b': 2, 'c': 3}
# (equivalente a dict(coppie) in questo caso)החלפת מפתחות וערכים של dict:
originale = {"a": 1, "b": 2, "c": 3}
invertito = {v: k for k, v in originale.items()}
# {1: 'a', 2: 'b', 3: 'c'}סנן משפט:
prezzi = {"mela": 1.2, "pera": 1.5, "kiwi": 2.5, "ananas": 4.0}
economici = {k: v for k, v in prezzi.items() if v < 2.0}
# {'mela': 1.2, 'pera': 1.5}הגדר הבנה
תחביר: {expression for element in iterable}. זהה לרשימה
הבנה, אבל עם פלטה מתולתלת.
parole = ["ciao", "mondo", "ciao", "python"]
uniche = {p.upper() for p in parole}
# {'CIAO', 'MONDO', 'PYTHON'}ראשי תיבות ייחודיים מרשימת שמות:
nomi = ["Ada", "Linus", "Grace", "Alan", "Guido"]
iniziali = {n[0] for n in nomi}
# {'A', 'L', 'G'}פילטר + טרנספורמציה
כמו בהבנת הרשימה, המסננים if הנגררים:
{n: n * n for n in range(10) if n % 2 == 0}
# {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}הבנת הנקרא להחלפת מפתחות וערכים
דפוס נפוץ מאוד להיפוך מילון (החלפת מפתחות וערכים, בהנחה שהערכים ייחודיים) הוא:
orig_dict = {'a': 1, 'b': 2}
inv_dict = {value: key for key, value in orig_dict.items()}
# result: {1: 'a', 2: 'b'}נסה את זה
בהינתן `מילים = ['מלה', 'פרה', 'קיווי', 'בננה']`, בנה 'אורכים' ככתיב {מילה: לן(מילה)}. להעריך `אורכים`.
הצג רמז
{p: len(p) עבור p במילים}
הפתרון זמין לאחר 3 ניסיונות
סקירת התרגיל
בהינתן `מספרים = [1, 2, 2, 3, 4, 4, 5]`, בנה `ריבועים_ייחודיים` כקבוצה של הריבועים. הערך 'ריבועים_ייחודיים'.
הצג רמז
פלטה מתולתלת ללא ':' = הבנת הגדר.
הפתרון זמין לאחר 3 ניסיונות
אתגר נוסף
Given the list of strings `names = ["Alice", "Bob"]`, use a dict comprehension to create a dictionary that maps each name to its length. Store the dictionary in `name_lengths` and evaluate it.
הצג רמז
התחביר הוא {name: len(name) for name in names}.
הפתרון זמין לאחר 3 ניסיונות