היי,
תחילה אגיד שאני מבין את ההסבר מהמחברת שמטודות מסויימות בעצם מבצעות מניפולציה על הרשימה המקורית
וכך למשל אם אני עושה pop אז הוא פיזית מסירה איבר ברשימה.
יחד עם זאת - אני לא מבין מדוע כאשר אני מעביר רשימה לתוך פונקציה כארגומנט
גם אם בהגדרה של הפונקציה למשל השם לא זהה:
def x(other_list):
other_list.pop()
return other_list
my_list= [1,2,3]
x(my_list)
print(my_list)
#output:
[1,2]
עכשיו זה הולך ונהיה לי יותר מוזר כאשר אם למשל בתוך הפונקציה אני עושה השמה של הרשימה הזו למשתנה חדש
ועושה עליו את הפעולה, עדין ! זה משנה לי את הרשימה המקורית.
def x(other_list):
temp = other_list
temp.pop()
return temp
my_list= [1,2,3]
x(my_list)
print(my_list)
#output:
[1,2]
בגדול אין לי בעיה שהרשימה המקורית תמחק כי אני מגיע לתשובות שאני רוצה
אבל נגיד במצב בו אני לא רוצה לאבד את הנתונים האלה כי אולי אצטרך אותם בעתיד מה עושים ?
הצילו !