Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのシーケンス型とは?主な種類と特徴をわかりやすく解説

シーケンス型とは何か

Pythonにおけるシーケンス(sequence)型とは、複数の値を順序付けて整理し、効率的に格納できるデータ型の総称です。代表的なシーケンス型には、文字列(str)リスト(list)タプル(tuple)bytearrayrangeオブジェクトなどがあります。

一方で、辞書(dict)セット(set)は順序を持たないデータを扱うコンテナであり、シーケンス型には分類されません。この違いを理解しておくことは、Pythonのデータ構造を使いこなす上で非常に重要です。

主なシーケンス型の特徴

Python公式ドキュメントによると、各シーケンス型は以下のような特徴を持っています。

  • 文字列(str):Unicodeコードポイントからなる不変(イミュータブル)なシーケンスです。一度作成した文字列は変更できません。

  • リスト(list)可変(ミュータブル)なシーケンスで、同じ種類の項目のコレクションを格納する用途でよく使われます。要素の追加・削除・変更が自由に行えます。

  • タプル(tuple)不変(イミュータブル)なシーケンスで、異なる種類のデータをまとめて扱うのに適しています。たとえば、組み込み関数enumerate()が返す2要素のタプルなどが代表例です。

  • bytearray可変なオブジェクトで、bytes型とbytearray型に共通する操作に加えて、可変シーケンスならではの操作(要素の変更など)もサポートしています。

  • range:数値の不変(イミュータブル)なシーケンスを表します。for文で決まった回数だけ繰り返し処理を行う際によく利用されます。

可変と不変の違いを押さえよう

シーケンス型を選ぶ際の大きなポイントは「可変(ミュータブル)」か「不変(イミュータブル)」かという点です。リストやbytearrayは後から内容を変更できますが、文字列・タプル・rangeは作成後に変更できません。データを安全に保持したい場合は不変な型を、動的に更新したい場合は可変な型を選ぶとよいでしょう。

簡単な使用例

たとえば、リストは次のように要素を追加・変更できます。

my_list = [1, 2, 3]
my_list.append(4)   # 要素の追加 → [1, 2, 3, 4]

一方、タプルは変更できないため、固定されたデータのセットを表現するのに向いています。

my_tuple = (1, 2, 3)
# my_tuple[0] = 10  # ← エラーになる(不変のため)

rangeはfor文と組み合わせて、指定回数のループ処理を簡潔に記述できます。

for i in range(5):
    print(i)   # 0〜4 を出力

まとめ

Pythonのシーケンス型は、データを順序付きで管理するための基本的かつ強力な仕組みです。それぞれの型が「可変か不変か」「どんなデータに向いているか」という特性を持っているため、目的に応じて適切な型を選ぶことが、読みやすく効率的なコードを書く第一歩となります。

  1. Python 3の標準データ型とは?数値・シーケンス・辞書の基本をわかりやすく解説

    Python 3の標準データ型の概要Python 3に標準で用意されているデータ型は、大きく分けて「数値型」「シーケンス型」「辞書(ディクショナリ)型」の3つに分類できます。辞書はキーと値のペアを格納するコレクションであり、Pythonプログラミングにおいて最も頻繁に使われるデータ構造の一つです。数値型(Numeric Types)数値型には「整数(int)」「浮動小数点数(float)」「複素数(complex)」の3種類があります。整数(int):小数点を含まない整数値です。例:10、-10浮動小数点数(float):小数部分を持つ実数です。例:1.55、0.005複素数(complex)

  2. Pythonの主なデータ型変換関数まとめ|int・float・str・listなどの使い方を実例付きで解説

    Pythonには、あるデータ型から別のデータ型へ値を変換するための組み込み関数が多数用意されています。この記事では、数値変換やコレクション変換に使える主要なデータ変換関数を、実際の実行例とともにわかりやすく解説します。 数値データの変換関数 int():整数への変換 浮動小数点数や、整数を表す文字列を整数(int)オブジェクトに変換します。文字列を変換する場合は、第2引数に基数を指定することで、8進数や16進数の文字列を整数に変換することもできます。 >>> int(11) 11 >>> int(11.15) 11 >>> int(2