工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Python

Pythonタプル完全ガイド:作成、アクセス、高度な操作

Pythonタプル

Pythonのタプルの威力を発見—イミュータブルなシーケンスが提供する速度、安全性、異種データへの汎用性。基本構文から高度な操作まで、リストではなくタプルを選ぶべき場面を理解できます。

動画:Pythonリストとタプル

タプルはリストのように振る舞いますが、作成後にイミュータブル(変更不可)です。リストとは異なり要素を変更できないため、固定データセットに最適です。

タプルの作成

タプルはカンマ区切りの値を丸括弧()内に配置して定義します。括弧は省略可能ですが、可読性向上のため推奨されます。

タプルは任意の数のアイテムを含み、整数、浮動小数点、文字列、リスト、他のタプルなどデータ型を混在させられます。

# さまざまなタプル
# 空のタプル
my_tuple = ()
print(my_tuple)
# 整数のタプル
my_tuple = (1, 2, 3)
print(my_tuple)
# 混合データ型
my_tuple = (1, "Hello", 3.4)
print(my_tuple)
# ネストしたタプル
my_tuple = ("mouse", [8, 4, 6], (1, 2, 3))
print(my_tuple)

出力

() (1, 2, 3) (1, 'Hello', 3.4) ('mouse', [8, 4, 6], (1, 2, 3))

タプルは括弧なしでも作成可能—これをタプルパッキングと呼びます。

my_tuple = 3, 4.6, "dog"
print(my_tuple)
# タプルアンパッキング
a, b, c = my_tuple
print(a)
print(b)
print(c)

出力

(3, 4.6, 'dog') 3 4.6 dog

単一要素のタプルには、ただの値と区別するため末尾のカンマが必要です。

my_tuple = ("hello")
print(type(my_tuple))  # <class 'str'>
# 単一要素タプル
my_tuple = ("hello",)
print(type(my_tuple))  # <class 'tuple'>
# 括弧省略可能
my_tuple = "hello",
print(type(my_tuple))  # <class 'tuple'>

出力

<class 'str'> <class 'tuple'> <class 'tuple'>

タプル要素へのアクセス

タプルはいくつかの方法で要素アクセスをサポートします:

1. インデックス

ゼロベースのインデックスで[]演算子を使用。範囲外はIndexError、非整数はTypeError。

# インデックス例
my_tuple = ('p','e','r','m','i','t')
print(my_tuple[0])  # 'p'
print(my_tuple[5])  # 't'
# ネストインデックス
n_tuple = ("mouse", [8, 4, 6], (1, 2, 3))
print(n_tuple[0][3])  # 's'
print(n_tuple[1][1])  # 4

出力

p t s 4

2. 負のインデックス

負のインデックスは末尾から数えます:-1は最後の要素。

# 負のインデックス
my_tuple = ('p', 'e', 'r', 'm', 'i', 't')
print(my_tuple[-1])  # 't'
print(my_tuple[-6])  # 'p'

出力

t p

3. スライシング

start:stop構文で部分配列を抽出。

# スライシング例
my_tuple = ('p','r','o','g','r','a','m','i','z')
print(my_tuple[1:4])   # ('r', 'o', 'g')
print(my_tuple[:-7])   # ('p', 'r')
print(my_tuple[7:])    # ('i', 'z')
print(my_tuple[:])     # 全タプル

出力

('r', 'o', 'g') ('p', 'r') ('i', 'z') ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
Pythonタプル完全ガイド:作成、アクセス、高度な操作

タプルの変更

タプルはイミュータブルです。要素への直接代入はTypeErrorを発生させます:

# 変更の試み
my_tuple = (4, 2, 3, [6, 5])
# my_tuple[1] = 9  # TypeError

しかし、要素自体がミュータブル(例:リスト)な場合、その内部状態は変更可能です:

my_tuple[3][0] = 9
print(my_tuple)  # (4, 2, 3, [9, 5])

タプル全体を新しい値に再代入は可能です:

my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
print(my_tuple)

+で連結、*で繰り返し;両方とも新しいタプルを返します。

print((1, 2, 3) + (4, 5, 6))  # (1, 2, 3, 4, 5, 6)
print(("Repeat",) * 3)        # ('Repeat', 'Repeat', 'Repeat')

出力

(1, 2, 3, 4, 5, 6) ('Repeat', 'Repeat', 'Repeat')

タプルの削除

個別アイテムは削除できません。delでタプル全体を削除可能:

my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
# del my_tuple[3]  # TypeError
del my_tuple
# print(my_tuple)  # NameError

出力

Traceback (most recent call last): File "<string>", line 12, in <module> NameError: name 'my_tuple' is not defined

タプルメソッド

タプルが公開する組み込みメソッドはcount()とindex()のみです。

my_tuple = ('a', 'p', 'p', 'l', 'e')
print(my_tuple.count('p'))  # 2
print(my_tuple.index('l'))  # 3

出力

2 3

その他のタプル操作

1. メンバーシップテスト

inキーワードで存在確認。

my_tuple = ('a', 'p', 'p', 'l', 'e')
print('a' in my_tuple)
print('b' in my_tuple)
print('g' not in my_tuple)

出力

True False True

2. イテレーション

forでタプルをループ。

for name in ('John', 'Kate'):
    print("Hello", name)

出力

Hello John Hello Kate

3. リストに対する利点

Python

  1. Python データ型マスター: 実践ガイド
  2. Python 演算子完全マスター: 包括的ガイド
  3. Python pass文完全マスター: 実践ガイド
  4. Python 関数引数完全マスター: 位置引数・キーワード引数・デフォルト引数
  5. Python辞書完全ガイド:作成、操作、高度なテクニック
  6. Pythonイテレータ完全ガイド:仕組みと自作方法
  7. Pythonクロージャ解説:ネスト関数が変数を捕捉する仕組み
  8. Python datetimeマスター:日付・時刻・タイムゾーン実践ガイド
  9. Python 概要:高水準、読みやすい、インタラクティブ、オブジェクト指向
  10. Python 数値型完全ガイド:不変な数値データ型の理解と活用
  11. Python 文字列完全マスター:作成、アクセス、操作のすべて