Ana içeriğe geç
Modül 3 · Ders 1 ders 4Kurstaki 9/36~12 min
Modül dersleri (1/4)

Listeler

Liste sıralı ve değişebilen bir öğe dizisidir. Bu Python'da en çok kullanılan veri yapısı: [] ile bir tane oluşturur ve onu değiştirirsiniz ezberlemeye değer bir dizi yöntemle.

Liste oluşturma

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

Dizine ve dilime göre erişim

Dizinler 0 ile başlar. Negatif indeksler sağdan sayılır:

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

Bir dilim hiçbir zaman IndexError değerini yükseltmez: aralık dışındaysa, boş alt liste. Bunun yerine parole[10] gibi doğrudan erişim, istisna.

Bir listeyi değiştirme

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

Sıralama

İki form; bunları birbirinden ayırmak önemlidir:

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

Uzunluk, üyelik, yineleme

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

Bir listeyi kopyalama

a = b kopyalamaz; yalnızca aynı liste için ikinci bir ad oluşturur. Kime aslında kopyala:

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

(Bunların hepsi sığ kopyalardır; iç içe geçmiş öğeler paylaşılmaya devam eder.)

Listeleri kopyalamak: referanslara dikkat edin

Python'da list_b = list_a yazdığınızda bir kopya oluşturmuyorsunuz: yalnızca ikinci bir referans oluşturuyorsunuz. list_b değiştirildiğinde list_a da değiştirilecektir. Gerçek bağımsız bir kopya oluşturmak için list_b = list_a.copy() yazmanız veya tam dilimlemeyi kullanmanız gerekir: list_b = list_a[:].

Deneyin

Egzersiz#python.m3.l1.e1
Denemeler: 0Yükleniyor…

'Nums = [5, 2, 8, 1, 9, 3]' listesi göz önüne alındığında, ilk üç sayının artan düzende sıralandığı 'first_third_sorted'ı oluşturun. Sayıları değiştirmeyin.

Düzenleyici yükleniyor…
İpucu göster

nums[:3] ilk üçtür, sonra sıralanır(...).

3 denemeden sonra çözüm mevcut

Alıştırmayı gözden geçirin

Egzersiz#python.m3.l1.e2
Denemeler: 0Yükleniyor…

`words = ['ciao']`dan başlayarak sonuna 'mondo' ekleyin ve ardından '!' ekleyin başlangıçta. 'Kelimeleri' değerlendirin.

Düzenleyici yükleniyor…
İpucu göster

kuyruğa ekleyin, başa (0, ...) ekleyin.

3 denemeden sonra çözüm mevcut

Ek zorluk

Egzersiz#python.m3.l1.e3
Denemeler: 0Yükleniyor…

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`.

Düzenleyici yükleniyor…
İpucu göster

Negatif adımla dilimleme [::-1] şeklindedir. Bunu ters_items'e atayın.

3 denemeden sonra çözüm mevcut