פייתון/פייתון גרסה 3/רשימה

הגדרה עריכה

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

בכדי ליצור רשימה נעזר בסוגרים מרובעים:  . רשימה ריקה מוגדרת   והיא נוצרת על ידי enter יחיד, להבדיל מהרשימה

L=[" "]

פעולות עריכה

פעולות רבות שמתבצעות על מחרוזות ניתן לבצע גם על רשימות: חזרה על רשימה (list repetition), שרשור רשימות (list concatenation), אינדקס ועוד.

#list concatenation
>>> L1=[1,2,3]
>>> L2=['a','b','c']
>>> L1+L2
[1, 2, 3, 'a', 'b', 'c']

#short writting
>>> L1+='a'
>>> L1
[1, 2, 3, 'a']

#list repetition
>>>  4*[0]
[0, 0, 0, 0]

#short writting:
>>> L1*=2
>>> L1
[1, 2, 3, 1, 2, 3]

mutable עריכה

להבדיל ממחרוזת ומספרים רשימה היא ניתנת לשינוי (mutable) דהינו ניתן לשנות תווים של רשימה מבלי ליצור אחת חדשה, להוסיף, למחוק, למיין (באמצעות פונקצית sort) ולהפוך.

שינוי פרטים עריכה

שינוי פריט מתבצע באמצעות רשימת שם הרשימה ואחריה בסוגרים מרובעים את מספר מיקום האיבר אותו נרצה לשנות. לאחריו סימן השיוויון והטיפוס אליו נרצה לשנות:

#changing one item in a list
>>> L=['a','b','c']
>>> L[1]=2
>>> L
['a', 2, 'c']

#change the letters in the first, second and the third to:
>>> list=['a','b','c','d','e']
>>> list[0:4]=[1,2,3,4]
>>> list
[1, 2, 3, 4, 'e']

ניתן לבצע פעולות אריתמטיות בתוך רשימות:

>>> list=[1,2,3,4,5]
>>> list[4]=list[4]-2
>>> list
[1, 2, 3, 4, 3]

ניתן לבצע החלפה של איבר ברשימה והצבה של איבר אחר מהרשימה:

>>> x=list(range(2,10,2))
>>> print(x)
[2, 4, 6, 8]
>>> x[:3]=x[3:1:-2]
>>> print(x)
[8, 8]

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

>>> x=list(range(2,10,2))
>>> print(x[3:1:-1])
[8, 6]

הוספת פריט עריכה

מיקום ראשון עריכה

הוספת איברים יכולה להתבצע באופן מלאכותי באמצעות אינדקס:

# slice by L[:0] :
>>> L=[1,2,3]
>>> L[:0]=['a']
>>> L
['a', 1, 2, 3]
איבר באמצע עריכה
>>> L=['a','b','c','d','e']
>>> L2=[1,2,3,]
>>> L[1:1]=L2
>>> L
['a', 1, 2, 3, 'b', 'c', 'd', 'e']
איבר אחרון עריכה

ניתן להוסיף גם איבר למיקום שנמצא אחרי מיקומו של האיבר האחרון:

# slice by L[nextposition:]
#*in our list the last position is 2. therefor the last position is 3
>>> L=[1,2,3]
>>> L[3:]=['c']
>>> L
[1, 2, 3, 'c']

ברשימה שלנו האיבר האחרון הוא במיקום שני ולכן האיבר הבא אחריו הוא במיקום השלישי.

נשם לב כי כאשר אנו מוספים שני איברים הם נכנסים אל תוך רשומה:
<source lang = "python">
# using slice - adding two elments
>>> L=[1,2,3]
>>> L[0]=1,2
>>> L
[(1, 2), 2, 3]


שרשור עריכה

#operator +
>>> L=[1,2,3]
>>> L=L+['a']
>>> L
[1, 2, 3, 'a']
  • ניתן להוסיף פריטים גם באמצעות פונקצית insert, פונקצית append, פונקצית extend

מחיקת פריט עריכה

מחיקת פרטים מתבצעת באמצעות del

>>> L=['a','b','c','d','e']
>>> del list_1[4]
>>> list_1
['a', 'b', 'c', 'd']

>>> list_1=['a','b','c','d','e']
>>> del list_1[:3]
>>> list_1
['d', 'e']

#Slices :
>>>L=[1,2,3,4]
>>>L[1:3]=[]
>>>L
[1,4]

#clear the list:
>>>L[:]=[]
>>>L
[]

ניתן למחוק איברים על ידי החלפת פריט ברשימה ריקה או באמצעות פונקצית remove

אינדקס עריכה

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

>>> L=[1,2,3,4]
>>> L[3]
4
>>> L[len(L)-1]
4
>>> L[-1]
4

חיתוך עריכה

חיתוך רשימה מייצר רשימה חדשה:

>>> L=[1,2,3,4]
>>> L[1:]
[2, 3, 4]

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

>>> L=[1,2,3]
>>> L[0:2]
[1, 2]

רשימה מקוננת עריכה

שמו לב, הוספת רשימה לתוך רשימה תייצר תת רשימה (List nesting):

>>> list_1=['a','b','c','d','e',8]
>>>list_1[5]=['e','f']
>>> list_1
['a', 'b', 'c', 'd', 'e', ['e', 'f']]

>>> list_1.append([2,5])
>>> list_1
['a', 'b', 'c', 'd', 'e', [2, 5]]

ניתן לבקש מפייתון לרשום לנו מפורשת את הפריט שנמצא ברשימה מקוננת :

>>> b=[1,2,3,4,5,6]
>>> num_2=[7,b,7,8,9]
>>> num_2
[7, [1, 2, 3, 4, 5, 6], 7, 8, 9]
>>> num_2[1][1]
2

ראה גם עריכה