רשימות - פעולות נוספות

קוד זה גורם לשגיאה. מדוע?

s = ‘Pyton’

s[2] = ‘th’

תשובה: אי אפשר לשנות מחרוזת, ובייחוד אי אפשר להחליף תת מחרוזת של מחרוזת במחרוזת. 

מה מדפיס הקוד הזה?

seasons = [‘winter’, ‘spring’, ‘winter’, ‘autumn’]

seasons[2] = ‘summer’

print(seasons)

[‘winter’, ‘spring’, ‘summer’, ‘autumn’]

מה מדפיס הקוד הזה?

lst = [‘a’, ‘b’, ‘c’]

lst[1] = [‘X’, ‘X’]

print(lst)

[‘a’, [‘X’, ‘X’], ‘c’]

מה מדפיס הקוד הזה?

seasons = [‘winter’, ‘spring’, ‘winter’, ‘autumn’]

seasons[-1] = ”

print(seasons)

[‘winter’, ‘spring’, ‘winter’, ”]

מה מדפיס הקוד הזה?

seasons = [‘winter’, ‘spring’, ‘autumn’]

seasons[2:3] = [‘spring’, ‘summer’]

print(seasons)

[‘winter’, ‘spring’, ‘summer’, ‘autumn’]

מה מדפיס הקוד הזה?

seasons = [‘spring’, ‘summer’, ‘autumn’]

seasons[0:1] = [‘winter’, ‘spring’]

print(seasons)

[‘winter’, ‘spring’, ‘summer’, ‘autumn’]

מה מדפיס הקוד הזה?

lst = [‘a’, ‘b’, ‘c’]

lst[0:2] = [‘X’, ‘X’]

print(lst)

[‘X’, ‘X’, ‘c’]

מה מדפיס הקוד הזה?

lst = [‘a’, ‘b’, ‘c’]

lst[0:2] = []

print(lst)

[‘c’]

מה מדפיס הקוד הזה?

seasons = [‘spring’, ‘summer’, ‘autumn’]

seasons[0:0] = [‘winter’, ‘spring’]

print(seasons)

[‘winter’, ‘spring’, ‘spring’, ‘summer’, ‘autumn’]

מה מדפיס הקוד הזה?

seasons = [‘spring’, ‘summer’, ‘autumn’]

seasons[:] = [‘winter’, ‘spring’]

print(seasons)

[‘winter’, ‘spring’]

מה מדפיס הקוד הזה?

lst = [5, 7, 3, 8]

for i in range(len(lst)):

     lst[i] = lst[i] + 5

print(lst)

[10, 12, 8, 13]

מה מדפיס הקוד הזה?

pair = [7, 5]
i = 0
while i < 2:
    pair[0] = pair[0] + 1
    pair[1] = pair[1] + 1
    i = i + 1
print(pair)

[9, 7]

קטע קוד זה גורם לשגיאה. מדוע?

s = ‘oh no’

s = s.append(‘!’)

תשובה: כיוון שהפונקציה append נועדה להוסיף ערכים לרשימה ואי אפשר להפעילה על מחרוזת.

מה מדפיס הקוד הזה?

lst = [‘double’, ‘example’]

lst.append([‘to’, ‘append’])

print(lst)

lst.extend([‘and’, ‘to’, ‘extend’]) 

print(lst)

[‘double’, ‘example’, [‘to’, ‘append’]]

[‘double’, ‘example’, [‘to’, ‘append’], ‘and’, ‘to’, ‘extend’]

מה מדפיס הקוד הזה?

lst = [‘something’, ‘missing’]

lst.insert(1, ‘is’)

print(lst)

[‘something’, ‘is’, ‘missing’]

מה מדפיס הקוד הזה?

lst = [‘something’, ‘is’, ‘redundant’]

lst.remove(‘redundant’)

print(lst)

[‘something’, ‘is’]

מה מדפיס הקוד הזה?

lst = [‘something’, ‘is’, ‘redundant’, ‘yet’, ‘something’]

lst.remove(‘something’)

print(lst)

[‘is’, ‘redundant’, ‘yet’, ‘something’]

מה מדפיס הקוד הזה?

lst = [‘something’, ‘is’, ‘redundant’]

lst.remove(‘Redundant’)

print(lst)

lst.remove(‘Redundant’)

ValueError: list.remove(x): x not in list

תשובה: הודעת שגיאה. כשהפונקציה remove אינה מוצאת ערך שהיא מחפשת ברשימה מוצאת הודעה שגיאה.

מה מדפיס הקוד הזה?

lst = [‘a’, ‘b’, ‘c’]

del lst[1]

print(lst)

[‘a’, ‘c’]

מה מדפיס הקוד הזה?

lst = [‘a’, ‘b’, ‘c’]

del lst[0:2]

print(lst)

[‘c’]

מה מדפיס הקוד הזה?

s = ‘Are you crazy?’

del s[5]

    del s[5]

TypeError: ‘str’ object doesn’t support item deletion

תשובה: הודעת שגיאה. אי אפשר למחוק תת-מחרוזת של מחרוזת.

מה מדפיס הקוד הזה?

lst = [1, 2, 3, 4, 5]

del lst[0]

del lst[-1]

del lst[-1]

lst.append(1)

lst.append(2)

lst.append(3)

print(lst)

[2, 3, 1, 2, 3]

הקוד הזה ירוץ ולא יגרום לשגיאה. ובכל זאת משהו שגוי בו. מה זה?

lst = [5, 8, 2]

newLst = lst.sort()

print(newLst)

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

מה מדפיס הקוד הזה?

lst = [0, -1, 0.5, 1]

lst.sort()

print(lst)

[-1, 0, 0.5, 1]

מה מדפיס הקוד הזה?

lst = [‘Dani’, ‘Yona’, ‘Rina’, ‘Pola’]

lst.sort()

print(lst)

[‘Dani’, ‘Pola’, ‘Rina’, ‘Yona’]

מה מדפיס הקוד הזה?

lst = [‘dani’, ‘Yona’, ‘Rina’, ‘pola’]

lst.sort()

print(lst)

[‘Rina’, ‘Yona’, ‘dani’, ‘pola’]

השלימו את הקוד הזה:

lst = [‘Dani’, ‘Yona’, ‘Rina’, ‘Pola’]

lst.sort()

print(lst)

כך שידפיס:

[‘Yona’, ‘Rina’, ‘Pola’, ‘Dani’]

lst = [‘Dani’, ‘Yona’, ‘Rina’, ‘Pola’]

lst.sort(reverse = True)

print(lst)

מה מדפיס הקוד הזה?

lst = [3, 4, ‘one’, ‘two’, 3, 4]

lst.sort()

print(lst)

lst.sort()

TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’

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