05-Python

Python(Part.30)| python【タプル(利用編-2)】

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

目標

インデックス式を理解して利用できる。
スライス式を理解して利用できる。

(pythonの)「タプル」の利用方法

インデックス式の利用

(pythonの)「タプル」の要素の取得

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

非負…0以上の数値
正…0より大きな数値

非負のインデックス

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

sample_tuple = (9, 11, 8.7, 'abc', 5j)

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

実行結果

負のインデックス

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

sample_tuple = (9, 11, 8.7, 'abc', 5j)

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

実行結果

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

sample_tuple = (9, 11, 8.7, 'abc', 5j)

print(sample_tuple[ -8 ])

実行結果

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

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

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

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

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

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

実行結果

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

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


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


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

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

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

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

print(sample_tuple[::-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.--)| python【ユーザー定義関数(2)】| 【return文】

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