序章
list は、Pythonのデータ構造であり、要素の変更可能または変更可能な順序付けられたシーケンスです。 リスト内にある各要素または値は、アイテムと呼ばれます。 文字列が引用符で囲まれた文字として定義されているのと同様に、リストは角かっこ[ ]
で囲まれた値で定義されます。
リストは、関連する多くの値を処理する場合に使用すると便利です。 これらを使用すると、一緒に属するデータをまとめ、コードを凝縮し、複数の値に対して同じメソッドと操作を一度に実行できます。
コレクションの種類であるPythonリストやその他のデータ構造について考えるときは、ファイルの品揃え、曲のプレイリスト、ブラウザーのブックマーク、メール、ビデオのコレクションなど、コンピューターにあるさまざまなコレクションをすべて考慮すると便利です。ストリーミングサービスなどにアクセスできます。
前提条件
Python 3をインストールし、コンピューターまたはサーバーにプログラミング環境をセットアップする必要があります。 プログラミング環境をセットアップしていない場合は、ローカルプログラミング環境またはサーバー上のプログラミング環境のインストールおよびセットアップガイドを参照して、オペレーティングに適したものにすることができます。システム(Ubuntu、CentOS、Debianなど)
文字列リスト
開始するには、文字列データ型の項目を含むリストを作成しましょう。
情報:このチュートリアルのサンプルコードに従うには、python3
コマンドを実行して、ローカルシステムでPythonインタラクティブシェルを開きます。 次に、>>>
プロンプトの後に例を追加して、例をコピー、貼り付け、または編集できます。
sea_creatures = ['shark', 'cuttlefish', 'squid', 'mantis shrimp', 'anemone']
リストを印刷すると、出力は作成したリストとまったく同じように応答します。
print(sea_creatures)
Output['shark', 'cuttlefish', 'squid', 'mantis shrimp', 'anemone']
要素の順序付けられたシーケンスとして、リスト内の各アイテムは、インデックス付けによって個別に呼び出すことができます。 リストは小さな部分で構成される複合データ型であり、値を追加、削除、および変更できるため、非常に柔軟性があります。 多くの値を格納したり、値を反復処理したりする必要があり、それらの値を簡単に変更できるようにしたい場合は、リストデータ型を使用することをお勧めします。
このチュートリアルでは、Pythonでリストを操作する方法をいくつか紹介します。
インデックスリスト
リスト内の各項目は、インデックス番号0
から始まる整数値であるインデックス番号に対応しています。
リストsea_creatures
の場合、インデックスの内訳は次のようになります。
‘鮫’ | 「イカ」 | ‘いか’ | 「シャコ」 | 「アネモネ」 |
---|---|---|---|---|
0 | 1 | 2 | 3 | 4 |
最初の項目である文字列'shark'
はインデックス0
で始まり、リストはインデックス4
で項目'anemone'
で終わります。
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
の場合、負のインデックスの内訳は次のようになります。
‘鮫’ | 「イカ」 | ‘いか’ | 「シャコ」 | 「アネモネ」 |
---|---|---|---|---|
-5 | -4 | -3 | -2 | -1 |
したがって、アイテム'squid'
の負のインデックス番号を使用して印刷する場合は、次のように実行できます。
print(sea_creatures[-3])
Outputsquid
+
演算子を使用して、リスト内の文字列アイテムを他の文字列と連結できます。
print('Sammy is a ' + sea_creatures[0])
OutputSammy is a shark
インデックス番号0
の文字列アイテムを文字列'Sammy is a '
と連結することができました。 +
演算子を使用して、2つ以上のリストを連結することもできます。
リスト内のアイテムに対応するインデックス番号を使用すると、リストの各アイテムに個別にアクセスして、それらのアイテムを操作できます。
リスト内のアイテムの変更
インデックス番号を別の値に設定することで、インデックスを使用してリスト内のアイテムを変更できます。 これにより、リストに含まれるアイテムを変更および更新できるため、リストをより細かく制御できます。
インデックス1
のアイテムの文字列値を'cuttlefish'
から'octopus'
に変更する場合は、次のように変更できます。
sea_creatures[1] = 'octopus'
sea_creatures
を印刷すると、リストは異なります。
print(sea_creatures)
Output['shark', 'octopus', 'squid', 'mantis shrimp', 'anemone']
代わりに負のインデックス番号を使用して、アイテムの値を変更することもできます。
sea_creatures[-3] = 'blobfish'
print(sea_creatures)
Output['shark', 'octopus', 'blobfish', 'mantis shrimp', 'anemone']
これで、'blobfish'
が'squid'
を-3
の負のインデックス番号(2
の正のインデックス番号に対応)に置き換えました。
リスト内のアイテムを変更できることで、効率的な方法でリストを変更および更新することができます。
スライスリスト
リストからいくつかの項目を呼び出すこともできます。 sea_creatures
の真ん中のアイテムのみを印刷したい場合、スライスを作成することで印刷できます。 スライスを使用すると、コロン[x:y]
で区切られたインデックス番号の範囲を作成することで、複数の値を呼び出すことができます。
print(sea_creatures[1:4])
Output['octopus', 'blobfish', 'mantis shrimp']
[1:4]
のようにスライスを作成する場合、最初のインデックス番号はスライスの開始位置(包括的)であり、2番目のインデックス番号はスライスの終了位置(排他的)です。これが、上記の例の項目の理由です。位置では、1
、2
、および3
が印刷されるアイテムです。
リストのいずれかの端を含める場合は、list[x:y]
構文の数値の1つを省略できます。 たとえば、リストの最初の3つのアイテムsea_creatures
('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']
スライスで使用できる最後のパラメーターは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つおきのアイテムのみが印刷されます。
0 、1、2、 3 、4、5、 6 、7、8、 9 、10、11、[X74X ] 12