05-Python

Python(Part.16)| python【リスト(利用編-1)】

python| まとめ | 現役エンジニア&プログラミングスクール講師「python」のまとめページです。pythonに関して抑えておきたい知識や文法やにについて記事をまとめています。まとめページの下部には「おすすめの学習書籍」「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中...

目標

(pythonの)「リスト」について作成方法を理解する。
インデックス式を理解して利用できる。
スライス式を理解して利用できる。

(pythonの)「リスト」の利用方法

(pythonの)「リスト」の作成方法

(pythonの)「リスト」の作成方法には「[](ブラケット)を利用する方法」と「list関数(組み込み関数)を利用する方法」の2つがあります。

「 [] (ブラケット)を利用する方法」

リストの作成方法のひとつめは「ブラケットを利用する方法」です。ブラケットはキーボードのEnterキーの左にある []括弧 です。この記号を利用するとリストが作成できます。要素にはリテラル、または変数を利用できます。

# 空のリストを作成しています。
sample_list_1 = []
# リストの要素は共通でなくても構いません。
sample_list_2 = [9, 11, 8.7, 'abc', 5j]
# 下のリストには文字を一文字ずつ要素に入れています。
sample_list_3 = ['a', 'b', 'c', 'd', 'e']

print(sample_list_1)
print(sample_list_2)
print(sample_list_3)

実行結果

要素に変数を利用しての作成

要素には変数を利用することができます。

sample_value_1 = 9
sample_value_2 = 'abc'

sample_list_2 = [sample_value_1, 11, 8.7, sample_value_2, 5j,]

print(sample_list_2)

実行結果

「list関数(組み込み関数)を利用する方法」

リストの作成方法のふたつめは、list関数(組み込み関数)を利用する方法です。list関数を利用する場合、次のように記述します。list関数は、list()の形で利用します。

list()…空のリストを作成します。
list([9, 11, 8.7, ‘abc’, 5j])…()の中にはオブジェクトが必要です。
list(‘文字列’)…文字列シーケンスはリストに変換されるとき一文字ずつが要素の値となります。

# 空のリストを作成しています。
sample_list_4 = list()
# リストの要素は共通でなくても構いません。
sample_list_5 = list([9, 11, 8.7, 'abc', 5j])
# 下は文字列をリストにして変数に設定しています。
sample_list_6 = list('abcde')

print(sample_list_4)
print(sample_list_5)
print(sample_list_6)

実行結果

「type関数(組み込み関数)を利用した型の確認」

作成したオブジェクトはリスト型です。組み込み関数のtype関数を利用すると、型の確認が可能です。リスト型の場合は「<class ‘list’>」と表示されます。

sample_list_1 = []
sample_list_2 = [9, 11, 8.7, 'abc', 5j]
sample_list_3 = ['a', 'b', 'c', 'd', 'e']

sample_list_4 = list()
sample_list_5 = list([9, 11, 8.7, 'abc', 5j])
sample_list_6 = list('abcde')

print(type(sample_list_1))
print(type(sample_list_2))
print(type(sample_list_3))
print(type(sample_list_4))
print(type(sample_list_5))
print(type(sample_list_6))

(pythonの)「リスト」の要素の取得

(pythonの)「リスト」では要素の取り出しにインデックス(添え字)を利用します。インデックスには先頭から数えす「非負のインデックス」と末尾から数える「負のインデックス」があります。(下キャプチャは再掲載)

非負のインデックス

非負のインデックスはリストの先頭要素を「0番目」として要素の末尾に向かって「1」ずつ増加する数え方をします。インデックスはリストを紐づけた変数に [] を利用して記述します。(例:sample[6])

sample_list = [9, 11, 8.7, 'abc', 5j]

print(sample_list[ 0 ])
print(sample_list[ 1 ])
print(sample_list[ 2 ])
print(sample_list[ 3 ])
print(sample_list[ 4 ])

実行結果

負のインデックス

負のインデックスはリストの末尾の要素を「-1番目」として要素の先頭に向かって「1」ずつ減少する数え方をします。(例:sample[-3])

sample_list = [9, 11, 8.7, 'abc', 5j]

print(sample_list[ -1 ])
print(sample_list[ -2 ])
print(sample_list[ -3 ])
print(sample_list[ -4 ])
print(sample_list[ -5 ])

実行結果

要素の範囲外となるインデックスを取得しようとするとエラーになります。

sample_list = [9, 11, 8.7, 'abc', 5j]

print(sample_list[-8])

実行結果

インデックスを利用した式を「インデックス式」と呼びます。

「スライス式」を利用した複数の値の取得方法

(pythonの)「リスト」では「インデックス番号」「 [] ブラケット」「:コロン」を利用してリストから複数の値を取得することができます。この式のことをスライス式と呼びます。

スライス式を利用すると「連続した要素」や「一定間隔の要素」を取得することができます。要素の取り出しには次の文法とルールがあります。ルールについては例を踏まえて解説していきます。

文法
sample[x : y]sample[x] から sample[y-1] までの要素
sample[x : y : z]sample[x] から z-1 おきの sample[y-1] までの要素
# 例
sample_list = [ 34, 23, 78, 99, 10, 51, 8, 48, 71, 3, 66, 1 ]

print(sample_list[ 2:6 ])
print(sample_list[ 2:20 ])
print(sample_list[ -3:-7 ])
print(sample_list[ -7:-3 ])
print(sample_list[ -20:-3 ])
print(sample_list[ 0:10:2 ])
print(sample_list[ : ])
print(sample_list[ :3 ])
print(sample_list[ 3: ])
print(sample_list[ ::2 ])
print(sample_list[ ::-1 ])

実行結果

print(sample_list[2:6])
この場合は先頭から2番目の要素「78」から5番目の要素「51」までを取得します。
[34, 23, 78, 99, 10, 51, 8, 48, 71, 3, 66, 1]

※ルール1:インデックスは0から数えます。
※ルール2:スライス式のふたつ目の数値は、指定した数から1を引いた数が目的の要素のインデックスとなります。今回の場合は6-1番目の「5番目」となります。


print(sample_list[2:20])
この場合は先頭から2番目の要素「78」から最後の要素「1」までを取得します。
[34, 23, 78, 99, 10, 51, 8, 48, 71, 3, 66, 1]

※ルール3:xとyについては指定した数値がlen(sample)を超える場合は、その値はlen(sample)として処理されます。インデックスの場合と違いリストの要素の範囲外を指定してもエラーとはなりません。


print(sample_list[-3:-7])
この場合は要素を取得できません。
[34, 23, 78, 99, 10, 51, 8, 48, 71, 3, 66, 1]

※ルール4:xとyについて、2つの数値の関係は「x < y」となります。逆の場合はエラーにはなりませんが、該当する要素は存在しないことになり、空として返されます。


print(sample_list[-7:-3])
この場合は先頭から-7番目の要素「51」から-4番目の要素「71」までを取得します。
[34, 23, 78, 99, 10, 51, 8, 48, 71, 3, 66, 1]


print(sample_list[-20:-3])
この場合は先頭から0番目の要素「34」から-3番目の要素「71」までを取得します。
[34, 23, 78, 99, 10, 51, 8, 48, 71, 3, 66, 1]

print(sample_list[0:10:2])
この場合は先頭から0番目の要素「34」から9番目の要素「3」までを2-1おき(今回の場合は1つおき)に取得します。
[34, 23, 78, 99, 10, 51, 8, 48, 71, 3, 66, 1]

※ルール5:zについては、指定した数値から1を引いた数の間隔をあけて要素を取得します。(zごとに取得と同じ意味)

print(sample_list[:])
この場合は先頭から0番目の要素「34」から最後の要素「1」までを取得します。
[34, 23, 78, 99, 10, 51, 8, 48, 71, 3, 66, 1]

※ルール6:xは省略、もしくはNoneの場合は「0」とみなされます。
※ルール7:yは省略、もしくはNoneの場合は「len(sample)」とみなされます。


print(sample_list[:3])
この場合は先頭から0番目の要素「34」から2番目の要素「78」までを取得します。
[34, 23, 78, 99, 10, 51, 8, 48, 71, 3, 66, 1]

print(sample_list[3:])
この場合は先頭から3番目の要素「99」から最後の要素「1」までを取得します。
[34, 23, 78, 99, 10, 51, 8, 48, 71, 3, 66, 1]

print(sample_list[::2])
この場合は先頭から0番目の要素「34」から最後の要素「1」までを1つおきに取得します。
[34, 23, 78, 99, 10, 51, 8, 48, 71, 3, 66, 1]

print(sample_list[::-1])
この場合は先頭から0番目の要素「34」から最後の要素「1」までを逆順で取得します。
[34, 23, 78, 99, 10, 51, 8, 48, 71, 3, 66, 1]

[1, 66, 3, 71, 48, 8, 51, 10, 99, 78, 23, 34]

スライス式で取得する値は一時的なもので、取得に利用したリストに影響を与えることはありません。

今回は以上になります。

「python」おすすめ書籍 ベスト3 | 現役エンジニア&プログラミングスクール講師「python」の学習でお勧めしたい書籍をご紹介しています。お勧めする理由としては、考え方、イメージなどを適切に捉えていること、「生のpython」に焦点をあてて解説をしている書籍であることなどが理由です。勿論、この他にも良い書籍はありますが、特に質の高かったものを選んで記事にしています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
05-Python

Python(Part.27)| python【選択構造(match文)(2)】|  [Selection Structure] (match statement)(2)

2024年7月10日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
05-Python

Python(Part.24)| python【反復構造(for-else文)】| [Iterative Structures(for-else statement)]

2024年7月1日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site