前書き

*リスト*は、変更可能な、または変更可能な要素の順序付きシーケンスであるPythonのデータ構造です。 リスト内の各要素または値はアイテムと呼ばれます。 stringsが引用符の間の文字として定義されているように、リストは角括弧 `+ []の間の値を持つことによって定義されます+ `。

リストは、多くの関連する値を操作する場合に使用すると便利です。 これらは、一緒に属するデータをまとめ、コードを圧縮し、複数の値に対して同じメソッドと操作を一度に実行できるようにします。

コレクションの種類であるPythonリストやその他のデータ構造について考える場合、コンピューター上にあるさまざまなコレクション(ファイルの種類、曲のプレイリスト、ブラウザーのブックマーク、メール、ビデオのコレクション)を考慮すると便利です。ストリーミングサービスなどでアクセスできます。

まず、文字列データ型のアイテムを含むリストを作成しましょう。

sea_creatures = ['shark', 'cuttlefish', 'squid', 'mantis shrimp', 'anemone']

リストを印刷すると、出力は作成したリストとまったく同じになります。

print(sea_creatures)
Output['shark', 'cuttlefish', 'squid', 'mantis shrimp', 'anemone']

要素の順序付けられたシーケンスとして、リスト内の各アイテムは、インデックス作成を通じて個別に呼び出すことができます。 リストは小さなパーツで構成される複合データ型であり、値を追加、削除、変更できるため、非常に柔軟です。 多数の値を保存する必要がある場合、または値を反復処理する必要があり、それらの値を簡単に変更できるようにしたい場合は、リストデータ型を使用することをお勧めします。

このチュートリアルでは、Pythonでリストを操作する方法をいくつか説明します。

インデックスリスト

リスト内の各項目は、インデックス番号「0」で始まる整数値であるインデックス番号に対応しています。

リスト `+ sea_creatures +`の場合、インデックスの内訳は次のようになります。

‘shark’ ‘cuttlefish’ ‘squid’ ‘mantis shrimp’ ‘anemone’

0

1

2

3

4

最初の項目である文字列「+ ‘shark’ 」はインデックス「+0」で始まり、リストは項目「」anemone ‘ `でインデックス「4」で終わります。

Pythonリストの各アイテムには対応するインデックス番号があるため、他のシーケンシャルデータ型と同じ方法でリストにアクセスして操作できます。

これで、インデックス番号を参照してリストの個別のアイテムを呼び出すことができます。

print(sea_creatures[1])
Outputcuttlefish

このリストのインデックス番号の範囲は、上の表に示すように、「+ 0 」-「 4+」です。 したがって、アイテムを個別に呼び出すには、次のようにインデックス番号を参照します。

sea_creatures[0] = 'shark'
sea_creatures[1] = 'cuttlefish'
sea_creatures[2] = 'squid'
sea_creatures[3] = 'mantis shrimp'
sea_creatures[4] = 'anemone'

4より大きいインデックス番号でリスト `+ sea_creatures +`を呼び出すと、有効ではないため範囲外になります。

print(sea_creatures[18])
OutputIndexError: list index out of range

正のインデックス番号に加えて、リストの末尾から逆方向に「+ -1 +」からカウントすることで、負のインデックス番号を持つリストのアイテムにアクセスすることもできます。 これは、リストが長く、リストの末尾に向かってアイテムを特定したい場合に特に便利です。

同じリスト `+ sea_creatures +`の場合、負のインデックスの内訳は次のようになります。

‘shark’ ‘cuttlefish’ ‘squid’ ‘mantis shrimp’ ‘anemone’

-5

-4

-3

-2

-1

そのため、負のインデックス番号を使用してアイテム「+ ‘squid’ + `を出力する場合は、次のようにします。

print(sea_creatures[-3])
Outputsquid

`+`演算子を使用して、リスト内の文字列アイテムを他の文字列と連結できます:

print('Sammy is a ' + sea_creatures[0])
OutputSammy is a shark

インデックス番号「0」の文字列項目と文字列「」を連結できました。Sammyis a ‘ `。 また、「+」演算子を使用してhttps://www.digitalocean.com/community/tutorials/understanding-lists-in-python-3#modifying-lists-with-operators[2つ以上のリストを連結します] ]。

リスト内のアイテムに対応するインデックス番号を使用すると、リストの各アイテムに個別にアクセスし、それらのアイテムを操作できます。

リスト内のアイテムの変更

インデックス番号を異なる値に設定することにより、インデックスを使用してリスト内のアイテムを変更できます。 これにより、リストに含まれるアイテムを変更および更新できるため、リストをより詳細に制御できます。

インデックス `+ 1 `のアイテムの文字列値を ` ‘cuttlefish’ `から ` ‘octopus’ +`に変更する場合は、次のようにします。

sea_creatures[1] = 'octopus'

`+ sea_creatures +`を出力すると、リストは異なります:

print(sea_creatures)
Output['shark', , 'squid', 'mantis shrimp', 'anemone']

代わりに負のインデックス番号を使用して、アイテムの値を変更することもできます。

sea_creatures[-3] = 'blobfish'
print(sea_creatures)
Output['shark', 'octopus', , 'mantis shrimp', 'anemone']

これで、「+ ‘blobfish’ 」が「 -3」の負のインデックス番号(「2」の正のインデックス番号に対応)で「+」squid」+を置き換えました。

リスト内のアイテムを変更できると、リストを効率的に変更および更新できます。

スライスリスト

リストからいくつかのアイテムを呼び出すこともできます。 たとえば、 `+ sea_creatures `の真ん中のアイテムを印刷したい場合、*スライス*を作成して印刷できます。 スライスでは、コロン ` [x:y] +`で区切られたインデックス番号の範囲を作成することにより、複数の値を呼び出すことができます。

print(sea_creatures[1:4])
Output['octopus', 'blobfish', 'mantis shrimp']

`+ [1:4] `のようにスライスを作成するとき、最初のインデックス番号はスライスの開始位置(包括的)であり、2番目のインデックス番号はスライスの終了位置(包括的)です。位置の項目の上に、「 1 」、「 2+」、および「3」が出力される項目です。

リストのどちらかの終わりを含めたい場合、 + list [x:y] +`構文の数字の1つを省略できます。 たとえば、リスト `+ sea_creatures +`の最初の3つの項目を印刷する場合、これは `+ 'shark' ++ 'octopus' +、 `+ ‘blobfish’ +`になります-できます次のように入力します:

print(sea_creatures[:3])
Output['shark', 'octopus', 'blobfish']

これにより、リストの先頭が印刷され、インデックス「3」の直前で停止しました。

リストの最後にすべてのアイテムを含めるには、構文を逆にします。

print(sea_creatures[2:])
Output['blobfish', 'mantis shrimp', 'anemone']

リストをスライスするときに、正のインデックス番号と同様に、負のインデックス番号を使用することもできます。

print(sea_creatures[-4:-2])
print(sea_creatures[-3:])
Output['octopus', 'blobfish']
['blobfish', 'mantis shrimp', 'anemone']

スライシングで使用できる最後のパラメーターの1つは* stride *と呼ばれます。これは、リストから最初のアイテムが取得された後にどれだけのアイテムを進めるかを示します。 これまでのところ、strideパラメータを省略しており、Pythonのデフォルトではストライドが1に設定されているため、2つのインデックス番号の間のすべてのアイテムが取得されます。

この構成の構文は `+ list [x:y:z] `で、 ` z +`はストライドを指します。 より大きなリストを作成してからスライスし、ストライドに値2を指定します。

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

print(numbers[1:11:2])
Output[1, 3, 5, 7, 9]

私たちの構築 `+ numbers [1:11:2] `は、 ` 1 `を含むインデックス番号と ` 11 `を除くインデックス番号の間の値を出力します。その後、ストライド値 ` 2 +`はプログラムに他のすべてのアイテムのみを印刷します。

最初の2つのパラメーターを省略し、パラメーターとしてストライドのみを使用して、構文 `+ list [

z] +`を使用できます。

print(numbers[::3])
Output[0, 3, 6, 9, 12]

ストライドを `+ 3 `に設定してリスト ` numbers +`を印刷することにより、3項目ごとにのみ印刷されます。

、1、2、4、5、7、8、10、11

正と負の両方のインデックス番号でリストをスライスし、ストライドを示すことで、リストを操作し、達成しようとしている出力を受け取るためのコントロールが提供されます。

演算子を使用したリストの変更

演算子を使用して、リストを変更できます。 `+`と `+ * +`演算子とそれらの複合形式 ` = `と ` * = +`の使用を見ていきます。

`+`演算子を使用して、2つ以上のリストを連結できます。

sea_creatures = ['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone']
oceans = ['Pacific', 'Atlantic', 'Indian', 'Southern', 'Arctic']

print(sea_creatures + oceans)
Output['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone', 'Pacific', 'Atlantic', 'Indian', 'Southern', 'Arctic']

`+`演算子は連結できるため、リスト形式の項目(または複数)を別のリストの最後に追加するために使用できます。 アイテムを角かっこで囲むことを忘れないでください:

sea_creatures = sea_creatures + ['yeti crab']
print (sea_creatures)
Output['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone', ]

`+ * +`演算子を使用してリストを乗算できます。 おそらく、ディレクトリ内のすべてのファイルのコピーをサーバーに作成するか、プレイリストを友人と共有する必要があります。これらの場合、データのコレクションを増やす必要があります。

`+ sea_creatures `リストに2を、 ` oceans +`リストに3を掛けます。

print(sea_creatures * 2)
print(oceans * 3)
Output['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone', 'yeti crab', 'shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone', 'yeti crab']
['Pacific', 'Atlantic', 'Indian', 'Southern', 'Arctic', 'Pacific', 'Atlantic', 'Indian', 'Southern', 'Arctic', 'Pacific', 'Atlantic', 'Indian', 'Southern', 'Arctic']

`+ * +`演算子を使用することで、指定した回数でリストを複製できます。

また、代入演算子 `+ = `とともに、 `+`および `+ * +`演算子の複合形式を使用できます。 ` = +`および ` * = +`複合演算子を使用して、リストをすばやく自動化された方法で作成できます。 これらの演算子を使用して、たとえばユーザーが入力した入力で後で変更できるプレースホルダーをリストに入力できます。

リスト形式のアイテムをリスト `+ sea_creatures `に追加しましょう。 このアイテムはプレースホルダーとして機能します。このプレースホルダーアイテムを数回追加したいと思います。 これを行うには、https://www.digitalocean.com/community/tutorials/how-to-construct-for-loops-in-python-3 [for loopで `+ = +`演算子を使用します]。

for x in range(1,4):
   sea_creatures += ['fish']
   print(sea_creatures)
Output['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone', 'yeti crab', 'fish']
['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone', 'yeti crab', 'fish', 'fish']
['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone', 'yeti crab', 'fish', 'fish', 'fish']

forループの反復ごとに、 `+ ‘fish’ `の追加リスト項目が元のリスト ` sea_creatures +`に追加されます。

`+ * = +`演算子は同様の動作をします:

sharks = ['shark']

for x in range(1,4):
   sharks *= 2
   print(sharks)
Output['shark', 'shark']
['shark', 'shark', 'shark', 'shark']
['shark', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark']

演算子 `+`および `+ * +`を使用して、リストを連結したりリストを乗算したりできます。 複合演算子 ` = `および ` * = +`は、リストを連結してリストを乗算し、新しいIDを元のリストに渡すことができます。

リストからアイテムを削除する

`+ del +`ステートメントを使用して、リストからアイテムを削除できます。 これにより、リスト内で指定したインデックス番号の値が削除されます。

「+ sea_creatures 」リストから、「 ‘octopus’ 」アイテムを削除しましょう。 このアイテムは、インデックス位置「+1」にあります。 アイテムを削除するには、 `+ del +`ステートメントを使用して、リスト変数とそのアイテムのインデックス番号を呼び出します。

sea_creatures =['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone', 'yeti crab']

del sea_creatures[1]
print(sea_creatures)
Output['shark', 'blobfish', 'mantis shrimp', 'anemone', 'yeti crab']

これで、インデックス位置「1」の文字列「+ ‘octopus’ 」は、リスト「 sea_creatures +」から削除されました。

`+ del `ステートメントで範囲を指定することもできます。 アイテム「 ‘octopus’ 」だけでなく、「 ‘blobfish’ 」と「 ‘mantis shrimp’ 」も削除したいとします。 これを達成するために、 ` del `ステートメントで ` sea_creatures +`の範囲を呼び出すことができます:

sea_creatures =['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone', 'yeti crab']

del sea_creatures[1:4]
print(sea_creatures)
Output['shark', 'anemone', 'yeti crab']

「+ del +」ステートメントで範囲を使用することで、インデックス番号「+1 +」(両端を含む)とインデックス番号「+4 +」(排他的)の間のアイテムを削除できました。 3つのアイテムを削除した後の3つのアイテムのリスト。

`+ del +`ステートメントにより、リストのデータ型から特定のアイテムを削除できます。

リストアイテムを使用したリストの作成

リストは、リストで構成される項目で定義できます。各リストは、親リストのより大きな括弧で囲まれています。

sea_names = [['shark', 'octopus', 'squid', 'mantis shrimp'],['Sammy', 'Jesse', 'Drew', 'Jamie']]

リスト内のこれらのリストは、ネストされたリストと呼ばれます。

このリスト内のアイテムにアクセスするには、複数のインデックスを使用する必要があります。

print(sea_names[1][0])
print(sea_names[0][0])
OutputSammy
shark

最初のリストはアイテムと等しいため、インデックス番号は0になります。これは構造の最初の番号になり、2番目のリストにはインデックス番号が1になります。 内側のネストされた各リスト内には個別のインデックス番号があり、2番目のインデックス番号で呼び出します。

sea_names[0][0] = 'shark'
sea_names[0][1] = 'octopus'
sea_names[0][2] = 'squid'
sea_names[0][3] = 'mantis shrimp'

sea_names[1][0] = 'Sammy'
sea_names[1][1] = 'Jesse'
sea_names[1][2] = 'Drew'
sea_names[1][3] = 'Jamie'

リストのリストを操作する場合、関連するネストされたリスト内の特定のアイテムにアクセスするには、複数のインデックス番号を参照する必要があることに留意することが重要です。

結論

リストのデータ型は、プログラムの実行中に変更できる柔軟なデータ型です。 このチュートリアルでは、リストのインデックス作成、スライス、変更、連結など、リストの基本機能について説明しました。

ここから、「https://www.digitalocean.com/community/tutorials/how-to-use-list-methods-in-python-3 [使用方法]を読むことで、Pythonでリストを操作する方法について詳しく知ることができますリストメソッド]、およびhttps://www.digitalocean.com/community/tutorials/understanding-list-comprehensions-in-python-3[list comprehensions]については、既存のリストに基づいてリストを作成します。 一般的なデータ型の詳細については、「https://www.digitalocean.com/community/tutorials/understanding-data-types-in-python-3 [データ型について]」チュートリアルをご覧ください。