Developer

【Python独学】シーケンス型と共通の演算
2020.11.02
Lv1

【Python独学】シーケンス型と共通の演算

ここまで、リストやタプルについて扱ってきました。
これらのオブジェクトは、シーケンス型というデータ型に該当します。
今回は、シーケンス型とそれに該当するオブジェクトで用いることが出来る演算について見ていきましょう。


シーケンス型とは?

シーケンス型は、Pythonで定義されているデータ型の1つです。
複数の値を順番通りに、ひとかたまりのデータとして扱うためのデータ型になります。
簡単な説明だけ聞くと、リストやタプルの説明と同じもののように聞こえると思いますがそのとおりで、
リストやタプルはシーケンス型に該当するオブジェクトなのです。

シーケンス型に該当するオブジェクトは、主に以下のものが挙げられます。

  • リスト
  • タプル
  • range
  • 文字列

これらが持つ主な共通点としては、複数の値をひとまとまりにしたデータである、複数の値に順序がある、
といった特徴などが挙げられます。


共通する演算

さて、シーケンス型に当てはまるオブジェクトでは、いくつかの共通する演算を用いることが出来ます。
代表的なものを確認していきましょう。

要素が含まれているかどうかの判定

シーケンスに対して、ある要素が含まれているか、あるいは含まれていないかを判定するには以下の演算を用います。

オブジェクト in シーケンス  :オブジェクトがシーケンスに含まれていればTrueを返す
オブジェクト not in シーケンス:オブジェクトがシーケンスに含まれていなければTrueを返す
list_num = [1, 2, 3, 4, 5]
result1 = 1 in list_num        ###1がlist_numに含まれていればTrueを、含まれていなければFalseを返す
print(result1)
result2 = 10 not in list_num   ###10がlist_numに含まれていなければTrueを、含まれていればFalseを返す
print(result2)
C:\Python> python 7-5.py
True
True

結合及び複数回の結合

シーケンス同士を結合する、もしくはシーケンスを複数回結合するには以下の演算子を用います。

オブジェクト1 + オブジェクト2:オブジェクト1と2を結合する
オブジェクト * n                   :オブジェクトをn回結合する
list_alpha1 = ["x", "y", "z"]
list_alpha2 = ["a", "b", "c"]
result1 = list_alpha1 + list_alpha2   ###リスト同士を結合する
print(result1)
result2 = list_alpha1 * 3             ###リストを3回結合する
print(result2)
C:\Python> python 7-5.py
[‘x’, ‘y’, ‘z’, ‘a’, ‘b’, ‘c’]
[‘x’, ‘y’, ‘z’, ‘x’, ‘y’, ‘z’, ‘x’, ‘y’, ‘z’]

インデックス番号を指定して要素を取り出す

インデックス番号を指定して、シーケンスの中から要素を取り出します。

シーケンス[インデックス番号]:シーケンス内のインデックス番号の要素を取り出す
list_alpha = ["v","w", "x", "y", "z"]
result = list_alpha[1]     ###list_alphaの1番目の要素を取り出す
print(result)
C:\Python> python 7-5.py
w

スライスで要素を取り出す

文字列を説明した際に扱ったスライスは、シーケンス型で共通して扱えるものになります。
シーケンスから要素を取り出す際に開始と終了のインデックス番号を指定、それに加えていくつごとに、といった指定をすることができます。

シーケンス[i:j]   :シーケンス内の要素をインデックス番号iからjまで取り出す
シーケンス[i:j:k]:シーケンス内の要素をインデックス番号iからjまでkごとに取り出す
list_alpha = ["o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
result1 = list_alpha[3:8]     ###list_alphaのインデックス番号3から8までの要素を取り出す
print(result1)
result2 = list_alpha[2:9:2]   ###list_alphaのインデックス番号2から9までの要素を1つ飛ばしで取り出す
print(result2)
C:\Python> python 7-5.py
[‘r’, ‘s’, ‘t’, ‘u’, ‘v’]
[‘q’, ‘s’, ‘u’, ‘w’]

要素数を調べる

シーケンスに含まれている要素の数を調べるには、len関数を用います。

len(シーケンス):シーケンスに含まれている要素の数を取得する
list_alpha = ["o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
result = len(list_alpha)     ###list_alphaの要素の数を取得する
print(result)
C:\Python> python 7-5.py
12

要素の最大、最小を調べる

シーケンス内の最大、最小の要素を調べるには、max関数、min関数を使います。

max(シーケンス):シーケンス内の最大の要素を取得する
min(シーケンス) :シーケンス内の最小の要素を取得する
list_num = [1, 20, 116, 78, 35, 59]
list_alpha = ["o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
result1 = max(list_num)     ###list_numの最大の要素を取得する
result2 = min(list_num)     ###list_numの最小の要素を取得する
result3 = max(list_alpha)   ###要素が文字列の場合、アルファベット順が最大、最小のものを取得する
result4 = min(list_alpha)
print(result1)
print(result2)
print(result3)
print(result4)
C:\Python> python 7-5.py
116
1
z
o

文字列の最大最小を取得する場合は、正確にはUnicodeのコードポイントの大小を比較しています。

これらの演算に加えて、タプルの記事で紹介したindex関数、count関数も扱うことができます。


まとめ

・シーケンス型は、Pythonで定義されているデータ型の1つ。
・シーケンス型にはリスト、タプル、range、文字列といったオブジェクトが該当する。
・シーケンス型のオブジェクトでは、いくつかの共通する演算を扱うことができる。


確認問題

1.数字の1~100までが含まれるリストを作成し、その中の要素数、最大の要素、最小の要素を取得してみましょう。

連載目次

独学で学ぶ Pythonプログラミング 連載目次