Pythonエントリチュートリアルノート(3)配列

19.コンテナとは何ですか?リストとは何ですか##

実生活では、コンテナとはアイテムを保持できるコンテナを指します。プログラムでは、コンテナは複数の要素をまとめることができるデータ構造です。コンテナ内の要素は1つずつ繰り返し取得できます。ではなくで使用できます。他のキーワードは、要素がコンテナに含まれるかどうかを決定します。

コンテナ###

リスト(リスト)、タプル(タプル)、辞書(dict)、セット(セット)などを含むPythonでは、すべてを複数の要素に配置できるため、コンテナーとしてカウントできます。これらのコンテナーはPythonプログラミングに含まれています。非常に重要なデータ構造です。次に、これらのデータ構造の学習に焦点を当てます。

list

リスト(リスト)は順序付けられたコンテナであり、リストに配置された要素は特定の順序で配置されます。リストを作成する方法は非常に簡単です。リストを定義するためにコンテナに配置する必要のある要素を囲むには、括弧 []を使用します。
たとえば、すべての学生の結果を一覧表示します。

scores =[45,60,75,86,49,100]

すべての学生の名前をリストします。

names =['Alice','Bob','David','Ellena'] #文字列要素にはまだ引用符が必要であることに注意してください

これまで見てきたように、リストは数字や文字列などのデータタイプに入れることができます。リストは入れられるタイプを判断しません。つまり、リストはPythonの言語によって決定される、任意のタイプのデータを同時に入れることができます。 、Pythonは動的言語であるため。

L =['Alice',66,'Bob', True,'False',100]

リストについては、リストの内容を直接印刷することができます。

L =['Alice',66,'Bob', True,'False',100]print(L)

20、順番にリストにアクセスしてください##

リストは順序付けられているため、リスト内の要素に順番にアクセスできます。

L =['Alice',66,'Bob', True,'False',100]for item in L:print(item)

前のセクションで文字列について学習したことを思い出してください。ここでは、forループを使用してリスト内のすべての要素にアクセスすることは、forループを使用して文字列内のすべての文字にアクセスすることと非常に似ています。

実際、文字列は特別なリストと見なすこともでき、複数の文字を順番に格納することしかできません。 forループを介してリストの各要素にアクセスする方法は、反復と呼ばれます。

空のリストの場合、forループアクセスを使用しても何も出力されません。

L =[]for item in L:print(item)

21.インデックスによるアクセスリスト##

リストは順序付けられたコンテナであるため、リスト内の各要素には一意の位置があり、これをインデックスと呼びます。これは文字列に似ているため、位置を渡すこともできます。リスト内の要素を取得します。以前に学習したことを振り返ると、角括弧 []を使用して、対応する要素に位置でアクセスします。
ここでの違いに注意する必要があることに注意してください。リストの定義も括弧 []で定義されていますが、これはインデックスによるリスト内の要素へのアクセスと競合しません。

names =['Alice','Bob','David','Ellena']print(names[0])print(names[1])print(names[2])print(names[3])

名前には4つの要素しかないため、インデックス3を介して最後の要素にのみアクセスできます。想像してみてください。print(names [4])としたらどうでしょうか。

names =['Alice','Bob','David','Ellena']print(names[4])

実際、これによりPythonランタイムエラーが発生し、インデックスアクセスが範囲外であることを示しています。

Traceback(most recent call last):
 File "<stdin>", line 1,in<module>
IndexError: list index out of range

したがって、インデックスを使用してリストにアクセスするときは、境界を越えないように特別な注意を払う必要があります。

同時に、文字列などのリストもスライスをサポートしています。スライスすることで、リストのサブリストを取得できます。

names =['Alice','Bob','David','Ellena']
sub_names = names[0:2]print(sub_names)

ここで、境界を超えてスライスした場合、Pythonランタイムエラーは発生しませんが、そのような添え字に従ってスライスした場合、要素は取得されないことに注意してください。

names =['Alice','Bob','David','Ellena']
sub_names = names[5:10]print(sub_names) # ==>[]

2、3、逆順のアクセスリスト##

Pythonリストは、リスト内の各要素を取得するための順方向のインデックス付けをサポートするだけでなく、リスト内の各要素に逆順でアクセスすることもサポートします。

names =['Alice','Bob','David','Ellena']

名前リストでは、 Ellenaの名前が最後にあり、これを最後の名前と呼びます。Pythonでは、 -1を使用して最後の要素を表すことができます。

names =['Alice','Bob','David','Ellena']print(names[-1]) # ==> Ellena

同様に、「-2」を使用して「David」の名前を出力し、「-3」を使用して「Bob」の場所を出力できます。

print(names[-2]) # ==> David
print(names[-3]) # ==> Bob

-5を使用する場合、最後から5番目の名前がないため、これも範囲外であり、エラーも報告されることに注意してください。

names =['Alice','Bob','David','Ellena']print(names[-5])Traceback(most recent call last):
 File "<stdin>", line 1,in<module>
IndexError: list index out of range

2つまたは4つ、リストに新しい要素を追加します##

現在、クラスには4人の学生がいます。

names =['Alice','Bob','David','Ellena']

本日、新しいクラスメートのキャンディがクラスに異動しました。新しいクラスメートを既存のリストに追加するにはどうすればよいですか?
Pythonでは、listは、リスト内の要素を操作できる一連のメソッドを提供します。これには、要素を追加するためのメソッドも含まれます。
最初の方法は、 append()メソッドを使用して、リストの最後に新しい学生を追加することです。

names =['Alice','Bob','David','Ellena']
names.append('Candy')print(names) # ==>['Alice','Bob','David','Ellena','Candy']

append()メソッドは常に要素をリストの最後に追加することに注意してください。
上記のリストを最初の文字で並べ替える必要がある場合は、キャンディを3番目にランク付けする必要があります。どうすればよいですか。

これには、リストの insert()メソッドを使用する必要があります。insert()メソッドはappend()メソッドとは異なります。insert()メソッドには、挿入する位置と挿入する要素の2つのパラメーターが必要です。

names =['Alice','Bob','David','Ellena']
names.insert(2,'Candy')print(names) # ==>['Alice','Bob','Candy','David','Ellena']

Candyを3番目の位置に挿入すると、元の名前が自動的に1つ戻ります。このとき、同じインデックスを使用して次の要素を取得すると、異なる結果が得られます。

names =['Alice','Bob','David','Ellena']print(names[2]) # ==> David
names.insert(2,'Candy')print(names[2]) # ==>Candy

25.リストから要素を削除します##

家族の理由でEllenaを転送する必要がある場合、既存のリストからEllenaを削除するにはどうすればよいですか?

このとき、リストの pop()メソッドを使用できます。pop()メソッドは、デフォルトでリストの最後の要素を削除して戻ります。

L =['Alice','Bob','Candy','David','Ellena']
name = L.pop()print(name) # ==> Ellena
print(L) # ==> L =['Alice','Bob','Candy','David']

Ellenaの場合、Ellenaはたまたまリストの最後にあるので、pop()メソッドを直接使用して、リストの最後からEllenaを削除できます。転送する必要があるのがEllenaではなく、Candyの場合、この時点でどうすればよいですか?

pop()メソッドでは、最後の要素を削除するだけでなく、pop()は、削除する要素の位置を指定するパラメーターを受け取ることもできます。

L =['Alice','Bob','Candy','David','Ellena']
name = L.pop(2)print(name) # ==> Candy
print(L) # ==>['Alice','Bob','David','Ellena']

26.リスト##の要素を置き換えます

リストの場合、リストへの要素の追加とリスト要素の削除に加えて、リストの既存の要素を変更することもできます。リスト内の元の要素は、インデックスで位置を指定し、新しい要素を割り当てることで置き換えることができます。

クラスメートのキャンディが転勤する必要があり、同時に新しいクラスメートのカンリナが転入する場合、アルファベット順に、カンリナの位置はたまたまキャンディの位置になります。

L =['Alice','Bob','Candy','David','Ellena']
L[2]='Canlina'print(L)

リバースインデックスを使用して同じ機能を実行することもできます。

L =['Alice','Bob','Candy','David','Ellena']
L[-3]='Canlina'print(L)

存在しない添え字を置き換えると、Pythonランタイムエラーも発生することに注意してください。

L =['Alice','Bob','Candy','David','Ellena']
L[6]='Canlina'Traceback(most recent call last):
 File "<stdin>", line 1,in<module>
IndexError: list assignment index out of range

二七二次元リスト##

1次元リストがすべての要件を満たしていない場合があります(上記のリストはすべて1次元リストです)。現時点では、2次元リストまたはさらに高次元のリストが必要です。

といった:
アリスの最新の3つの結果は [100、89、92]です
ボブの最新の3つの結果は [70、65、81]です
キャンディの最新の3つの結果は [88、72、77]です
3人の生徒の結果をリストに保存する必要がある場合は、次のようにする必要があります。

alice_scores =[100,89,92]
bob_scores =[70,65,81]
candy_scores =[88,72,77]
all_scores =[alice_scores, bob_scores, candy_scores]print(all_scores) # ==>[[100,89,92],[70,65,81],[88,72,77]]

この時点で取得するのは2次元リストです。2次元リストの場合、リスト内の各要素は引き続きリストです。現時点で、2次元リストall_scoresからボブの最新の3番目のテストスコアを取得する必要がある場合は、次のように記述できます。

alice_scores =[100,89,92]
bob_scores =[70,65,81]
candy_scores =[88,72,77]
all_scores =[alice_scores, bob_scores, candy_scores]
score = all_scores[1][2] # ==>81

その中で、all_scores [1]はボブの最新の3つのスコアのリストを取得し、次に添え字[2]を介してボブの3番目のスコアを取得できます。

Recommended Posts

Pythonエントリチュートリアルノート(3)配列
Pythonノート
Pythonエントリ-3
Pythonエントリーノート[基本的な文法(下記)]
Python2.7 [インストールチュートリアル]
Python研究ノート(1)
python研究ノート
python印刷配列
Python研究ノート(3)
Pythonエントリー学習教材
03.Pythonエントリの演算子
Pythonの基本的な描画チュートリアル(1)
python array add array_Python add array
Four.mdを学習するPython3エントリ
three.mdを学習するPython3エントリ
Python3.mdの使用を開始する
two.mdを学習するPython3エントリ
Pythonの基本的な描画チュートリアル(2つ)
Pythonは多次元配列ソートを実装しています
Pythonの2次元配列を正しく作成する
05.Pythonエントリ値ループステートメント
Python入門ノート[基本的な文法(上)]
入門から習熟までのPython(2):Pythonの概要