Python מצא את הרשימה הקצרה ביותר ב-Dict of Lists – Finxter

Share on facebook
Share on twitter
Share on linkedin
Share on telegram
Share on whatsapp
Share on email
פרסומת
X-ray_Promo1


ניסוח בעיה

💬 אתגר תכנות: נתון מילון שבו הערכים הם רשימות בגדלים משתנים. מצא והחזר את הרשימה הקצרה ביותר!

הנה דוגמה:

d = {1: [1, 2, 3],
     2: [1, 2],
     3: [1],
     4: [1, 2, 3, 4]}
# Goal: [1]

כמו כן, תלמד כיצד לפתור גרסה של אתגר זה.

💬 אתגר בונוס: מצא רק את מַפְתֵחַ שמשויכת לרשימה הקצרה ביותר במילון.

הנה דוגמה:

d = {1: [1, 2, 3],
     2: [1, 2],
     3: [1],
     4: [1, 2, 3, 4]}
# Goal: 1

אז בלי להתעסק יותר, בואו נתחיל!

שיטה 1: min(lst, key=len)

השתמש במובנה של Python min() פונקציה עם ארגומנט מפתח כדי למצוא את הרשימה הקצרה ביותר מתוך ערכי המילון. שִׂיחָה min(d.values(), key=len) כדי להחזיר את הרשימה הקצרה ביותר d.values() משתמש ב מובנה len() פונקציה לשייך את המשקל של כל רשימה, כך שהרשימה הקצרה ביותר תהיה המינימלית.

הנה דוגמה:

d = {1: [1, 2, 3],
     2: [1, 2],
     3: [1],
     4: [1, 2, 3, 4]}

print(min(d.values(), key=len))
# [1]

יפה פתרון one-liner, נכון? 🙂 בואו נסתכל על גרסה קלה כדי לבדוק את מַפְתֵחַ במקום זאת מהרשימה הקצרה ביותר.

👉 הדרכה מומלצת: Python מצא את הרשימה הארוכה ביותר ב-Dict

שיטה 2: len(min(lst, key=len))

כדי לקבל את מיפוי המפתח לערך הרשימה הקצר ביותר במילון, השתמש min(d, key=lambda x: len(d[x])).

הֶסבֵּר: אתה קובע את טיעון המפתח של min() אל א פונקציית למבדה שממפה כל מפתח מילון x לאורך הערך המשויך שהושג עם len(d[x]). בדרך זו, אתה משתמש באורך הערכים הממופים כשקולות כדי לקבוע את ה"מינימום", כלומר הרשימה הקצרה ביותר.

💡 הערה: כשאתה מתקשר min(d) Python יחליף אותו אוטומטית ב min(d.keys())כך שהוא חוזר על מקשי המילון.

הנה דוגמה מקבילה:

d = {1: [1, 2, 3],
     2: [1, 2],
     3: [1],
     4: [1, 2, 3, 4]}

print(min(d, key=lambda x: len(d[x])))
# 1

המפתח עם הרשימה הקצרה ביותר במילון הוא 4.

👉 הדרכה מומלצת: מדריך שלם למילוני פייתון

שיטה 4: הרשימה הקצרה ביותר בערכי דיקט באמצעות הבנת רשימה

אתה יכול גם לקבל את אורך הרשימה הקצרה ביותר מערכי המילון על ידי שילוב של a ביטוי מחולל אוֹ הבנת רשימה עם ה min() פונקציה ללא מפתח באמצעות הביטוי הבא: min(len(val) for val in d.values())

ככה:

d = {1: [1, 2, 3],
     2: [1, 2],
     3: [1],
     4: [1, 2, 3, 4]}

print(min(len(val) for val in d.values()))
# 1

שימו לב שזה מחזיר את האורך של הקצר ביותר רשימה בערכי ה-dict, לא במפתח או ברשימה עצמה.

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

👉 הַדְרָכָה: הבנת הבנת הרשימות ב-Python

שיטה 4: נאיבי ללולאה

גישה לא כל כך פייתונית אבל עדיין משובחת היא לחזור על כל צמדי מפתח-ערך ב-a for לולאה, בדוק את אורכם באמצעות len() פונקציה, ו לְהַשְׁווֹת זה מול הרשימה הקצרה ביותר כרגע המאוחסנת במשתנה נפרד. לאחר סיום הלולאה, המשתנה מכיל את הרשימה הקצרה ביותר.

הנה דוגמה פשוטה:

d = {1: [1, 2, 3],
     2: [1, 2],
     3: [1],
     4: [1, 2, 3, 4]}

# Initialize variables with dummy values
k_min, v_min = -1, []
i = 0

for key,val in d.items():
    if len(val) < len(v_min) or i==0:
        k_min, v_min = key, val
    i += i

print("Shortest key and value:", str(k_min) + ',' + str(v_min))
# Shortest key and value: 3,[1]

כל כך הרבה שורות קוד! 😅 אני שונא את זה.

סיכום

למדת על ארבע דרכים למצוא את הרשימה הקצרה ביותר ואת אורכה מרשימת רשימות Python (רשימה מקוננת):

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

👉 הדרכה מומלצת: Python מצא את הרשימה הארוכה ביותר ברשימה



קישור לכתבת המקור – 2022-09-26 08:17:59

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on telegram
Telegram
Share on whatsapp
WhatsApp
Share on email
Email
פרסומת
MAGNEZIX מגנזיקס

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