メインコンテンツにスキップ
モジュール 3 · レッスン 1 / 4コース内の 9/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

仕分け

2 つの形式 — 区別することが重要です。

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 はコピーしません。同じリストに 2 番目の名前を作成するだけです。に 実際にコピーします:

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

(これらはすべて浅いコピーであり、ネストされた要素は共有されたままになります。)

リストのコピー: 参照に注意してください

Python では、list_b = list_a を作成するとき、コピーを作成するのではなく、2 番目の参照を作成するだけです。 list_b を変更すると、list_a も変更されます。真の独立したコピーを作成するには、list_b = list_a.copy() と記述するか、完全なスライス: list_b = list_a[:] を使用する必要があります。

試してみてください

運動#python.m3.l1.e1
試行回数: 0読み込み中…

リスト `nums = [5, 2, 8, 1, 9, 3]` を指定して、nums の最初の 3 つの数値を昇順にソートして `first_three_sorted` を構築します。数値は変更しないでください。

エディターを読み込み中…
ヒントを表示

nums[:3] は最初の 3 つで、その後sorted(...)されます。

3 回の試行後に解決策が利用可能になります

復習演習

運動#python.m3.l1.e2
試行回数: 0読み込み中…

`words = ['ciao']` から始めて、最後に 'mondo' を追加し、その後に '!' を挿入します。初めに。 「言葉」を評価する。

エディターを読み込み中…
ヒントを表示

末尾に追加、先頭にinsert(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 回の試行後に解決策が利用可能になります