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

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
moshe2goלא בפורום כעת ת.הצטרפות: 24/04/2013 · הודעות: 485 ·
 

הודעה פורסם: 03/12/2017 - 14:48
נושא ההודעה: שאלה לגבי מערך דו מימדי בפייתון?

אני מתחיל ללמוד פייתון ממדריכים ברשת וכרגע צריך להשתמש במערך דו מימדי, משהו פשוט עם הרבה שורות ושתי עמודות. ראיתי שיש כל מיני דברים מוכנים מתוך numpy, אבל זה נראה יותר מתאים למטריצות גדולות וגם כרגע אני רוצה לייצר בעצמי את המערך לצורך לימוד. אז מצאתי משהו כזה שמגדיר מערך כך שהאינדקס הראשון הוא עמודה והשני שורה:
קוד:
# Creates a list containing 5 lists, each of 8 items, all set to 0
w, h = 2, 1000;
Matrix = [[0 for x in range(w)] for y in range(h)]

אבל יש כאן משהו שמבלבל אותי: כשאני מכניס למערך מספר אני צריך דווקא להשתמש בפקודה הבאה שבה הנתון הראשון הוא השורה והשני עמודה - הפוך מהגדרת המערך לעיל כלומר קודם ה y ואחכ x:
קוד:
Matrix[a][0] = a
      Matrix[a][1] = s

האם אני מפספס כאן משהו או שזה פשוט ככה...

_________________
"אם אין קוטג' תאכלו מילקי" – אמרה המלכה טרם הואצה הגיליוטינה בקצב 9.8 מטר לשניה בריבועעעעעעעעע
You can take our sweet homes, even our cloths"
!But don't touch the streets, Ah, That's NO
"...The streets are our @world's compilable kernel
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
mksoftלא בפורום כעתSite Admin ת.הצטרפות: 17/03/2002 · הודעות: 10514 · מיקום: כדור הארץ
 

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

אתה מייצר את זה בתור של מערך של מערכים (זה לא בדיוק מטריצה).

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

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

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

הודעה פורסם: 03/12/2017 - 15:18
נושא ההודעה:

זה יוצר לך מערך של 2 עמודות ו 1000 שורות.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
moshe2goלא בפורום כעת ת.הצטרפות: 24/04/2013 · הודעות: 485 ·
 

הודעה פורסם: 03/12/2017 - 15:59
נושא ההודעה:

ציטוט:
אתה מייצר את זה בתור של מערך של מערכים (זה לא בדיוק מטריצה).

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

ציטוט:
זה יוצר לך מערך של 2 עמודות ו 1000 שורות.

אכן - זה מה שאני צריך

תודה

_________________
"אם אין קוטג' תאכלו מילקי" – אמרה המלכה טרם הואצה הגיליוטינה בקצב 9.8 מטר לשניה בריבועעעעעעעעע
You can take our sweet homes, even our cloths"
!But don't touch the streets, Ah, That's NO
"...The streets are our @world's compilable kernel
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
mksoftלא בפורום כעתSite Admin ת.הצטרפות: 17/03/2002 · הודעות: 10514 · מיקום: כדור הארץ
 

הודעה פורסם: 03/12/2017 - 16:05
נושא ההודעה:

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

_________________
הבלוג שלי
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
moshe2goלא בפורום כעת ת.הצטרפות: 24/04/2013 · הודעות: 485 ·
 

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

אז לסיכום: המערך עושה את העבודה, אבל אם יש פתרון יותר אלגנטי ונחמד עבור מערך של 1000 שורות ושתי עמודות, אשמח לשמוע? או שזה פתרון סביר דיו

_________________
"אם אין קוטג' תאכלו מילקי" – אמרה המלכה טרם הואצה הגיליוטינה בקצב 9.8 מטר לשניה בריבועעעעעעעעע
You can take our sweet homes, even our cloths"
!But don't touch the streets, Ah, That's NO
"...The streets are our @world's compilable kernel
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 03/12/2017 - 18:48
נושא ההודעה:

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

אתה יוצר רשימה באורך 1000 כשכל תא ברשימה מכיל רשימה באורך 2. באותה מידה אתה יכול ליצור רשימה עם תא שמכיל dict או משהו אחר בכל תא בנפרד.

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

תוכן הדיון

  1. moshe2go
  2. mksoft
  3. אורח
  4. moshe2go
  5. mksoft
  6. moshe2go
  7. אורח