דילוג לתוכן המרכזי
מודול 3 · שיעור 1 מתוך 49/36 בקורס~12 min
שיעורי מודול (1/4)

רשימות

רשימה היא רצף מסודר וניתן לשינוי של אלמנטים. זה ה מבנה הנתונים הנפוץ ביותר ב- Python: אתה יוצר אחד עם [] ומשנה אותו עם סט שיטות שכדאי לשנן.

יצירת רשימה

Python
vuota = []
numeri = [10, 20, 30]
mista = [1, "due", 3.0, True, None]    # tipi diversi: legale ma raro

גישה לפי אינדקס ופרוסה

האינדקסים מתחילים ב-0. אינדקסים שליליים סופרים מימין:

Python
parole = ["a", "b", "c", "d"]
parole[0]    # 'a'
parole[-1]   # 'd'   (ultimo)
parole[1:3]  # ['b', 'c']   slice [start:stop]
parole[::-1] # ['d', 'c', 'b', 'a']   reverse

פרוסה אף פעם לא מעלה את IndexError: אם היא מחוץ לטווח, היא מחזירה רשימת משנה ריקה. גישה ישירה כמו parole[10], במקום זאת, מעלה חריג.

שינוי רשימה

Python
nums = [1, 2, 3]
nums.append(4)         # [1, 2, 3, 4]    aggiunge in fondo
nums.insert(0, 0)      # [0, 1, 2, 3, 4] inserisce in posizione
nums.extend([5, 6])    # [0, 1, 2, 3, 4, 5, 6]   concatena
nums.pop()             # 6   estrae ultimo
nums.pop(0)            # 0   estrae primo (più lento: O(n))
nums.remove(3)         # rimuove la PRIMA occorrenza di 3
nums[1] = 99           # sostituisce per indice

מִיוּן

שתי צורות - חשוב להבדיל ביניהן:

Python
nums = [3, 1, 4, 1, 5, 9, 2, 6]
nums.sort()          # MUTA nums in place, ritorna None
ordinati = sorted(nums)  # ritorna NUOVA lista, lascia nums invariata
nums.sort(reverse=True)
sorted(nums, key=lambda n: -n)   # ordinamento per chiave

אורך, חברות, איטרציה

Python
len(nums)              # quanti elementi
3 in nums              # True/False
for n in nums:
    print(n)

העתקת רשימה

a = b אינו מעתיק - הוא רק יוצר שם שני לאותה רשימה. ל למעשה העתק:

Python
copia = lista[:]            # slice completo
copia = list(lista)         # costruttore esplicito
copia = lista.copy()        # metodo

(כל אלה הם עותקים רדודים - אלמנטים מקוננים נשארים משותפים.)

העתקת רשימות: היזהרו מהפניות

ב-Python, כשאתה כותב list_b = list_a, אתה לא יוצר עותק: אתה רק יוצר הפניה שנייה. שינוי list_b ישנה גם את list_a. כדי ליצור עותק עצמאי אמיתי, עליך לכתוב list_b = list_a.copy() או להשתמש בחיתוך מלא: list_b = list_a[:].

נסה את זה

פעילות גופנית#python.m3.l1.e1
ניסיונות: 0טוען...

בהינתן הרשימה 'מספרים = [5, 2, 8, 1, 9, 3]', בנה את 'שלושה_ראשונים' עם שלושת המספרים הראשונים של המספרים ממוינים בסדר עולה. אל תשנה מספרים.

טוען עורך...
הצג רמז

nums[:3] הם שלושת הראשונים, ולאחר מכן ממוינים (...).

הפתרון זמין לאחר 3 ניסיונות

סקירת התרגיל

פעילות גופנית#python.m3.l1.e2
ניסיונות: 0טוען...

החל מ-'words = ['ciao']`, הוסף 'mondo' בסוף, ולאחר מכן הכנס '!' בהתחלה. העריכו `מילים`.

טוען עורך...
הצג רמז

להוסיף בזנב, להוסיף (0, ...) בראש.

הפתרון זמין לאחר 3 ניסיונות

אתגר נוסף

פעילות גופנית#python.m3.l1.e3
ניסיונות: 0טוען...

Given the list `items = [10, 20, 30, 40]`, use slicing to create a new list `reversed_items` containing the same elements but in reverse order. Finally, evaluate `reversed_items`.

טוען עורך...
הצג רמז

חיתוך עם שלב שלילי הוא [::-1]. הקצה אותו ל-reversed_items.

הפתרון זמין לאחר 3 ניסיונות