ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
מתחילאורח · ·
 

הודעה פורסם: 28/12/2014 - 16:20
נושא ההודעה: פייתון: איך להשתמש בשם של המשתנה כערך למחרוזת

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

קוד:
arr = [aba, ama , bob]


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

קוד:
"i'm frind of bob"

כשהשם bob הוא בעצם השם של המשתנה ולא הערך שלו
(את הערך שלו אני צריך כדי לעשות השוואה כלשהי)

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

אשמח לכל תשובה שהיא.
תודה לעוזרים
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
mksoftלא בפורום כעתSite Admin ת.הצטרפות: 17/03/2002 · הודעות: 10514 · מיקום: כדור הארץ
 

הודעה פורסם: 28/12/2014 - 16:58
נושא ההודעה:

אתה יכול לעשות הפוך, לשמור את המחרוזות של השמות ברשימה, ואז לקחת את הערך מה-locals , לדוגמא:

קוד:
>>> a, b = 'cc', 12
>>> arr = ['a', 'b']
>>> for name in arr:
...     print locals()[name]
...
cc
12


שמור את הערך של locals() מחוץ ללולאה במשתנה והשתמש בו בתוכה עבור ביצועים טובים יותר (עשוי להיות בעייתי אם ה-locals משתנה בזמן ריצת הלולאה).

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

_________________
הבלוג שלי
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 28/12/2014 - 17:15
נושא ההודעה:

אל תשתמש במערך, השתמש בdictionary כאשר במקום שמות משתמשים הkeys הם השמות שלך

קוד:
di = { 'aaa':1, 'bbb':2,'ccc':3 }


ככה אתה יכול לעבור על המערך:
קוד:

for key, value in di:
    if value == 2:
        print "I'm friend of %s" % key
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 29/12/2014 - 15:46
נושא ההודעה:

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

תודה רבה!
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
mad_drלא בפורום כעת ת.הצטרפות: 03/08/2003 · הודעות: 771 ·
 

הודעה פורסם: 29/12/2014 - 15:51
נושא ההודעה:

Anonymous :
תודה לכם
השימוש במילון לא יעיל כי אני צריך את הערכים לפי סדר
בסופו של דבר השתמשתי במערך נוסף של שמות (למרות הבזבזנות)

תודה רבה!

חשבת להשתמש בtuples?
קוד:

>>> di = [ ('aaa',1), ('bbb',2),('ccc',3) ]
>>> for key, value in di:
...   if value == 2:
...     print "I'm friend of %s" % key
...
I'm friend of bbb

_________________
Image
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
mksoftלא בפורום כעתSite Admin ת.הצטרפות: 17/03/2002 · הודעות: 10514 · מיקום: כדור הארץ
 

הודעה פורסם: 29/12/2014 - 17:04
נושא ההודעה:

במקרה כזה עדיף tuples כמו שהמליצו מעל, אבל אל תשים אותם ברשימה, אלא גם ב-tuple (אם כבר).

נ.ב
עבר מילון ששומר על הסדר יש את OrderedDict

_________________
הבלוג שלי
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. אורח [מתחיל]
  2. mksoft
  3. אורח
  4. אורח
  5. mad_dr
  6. mksoft