【Python】タプルの取り出し
目次
- タプルのインデックスによる取り出し
- タプルのスライスによる取り出し
- タプルのアンパックによる取り出し
- タプルのイテレーションによる取り出し
- ネストされたタプルからの取り出し
- 発展的なタプルの取り出し方
タプルのインデックスによる取り出し
Pythonのタプルはリストと同様に、インデックスを使って要素を取り出せます。
t = (10, 20, 30, 40, 50)
print(t[0]) # 10
print(t[2]) # 30
print(t[-1]) # 50
インデックスは 0 から始まり、負のインデックスを使うと末尾から数えられます。
タプルのスライスによる取り出し
タプルの一部を取り出すにはスライスを使います。
t = (10, 20, 30, 40, 50)
print(t[1:4]) # (20, 30, 40)
print(t[:3]) # (10, 20, 30)
print(t[2:]) # (30, 40, 50)
print(t[::2]) # (10, 30, 50)
print(t[::-1]) # (50, 40, 30, 20, 10)
スライスの構文は start:end:step
です。step を負にすると逆順になります。
タプルのアンパックによる取り出し
タプルのアンパックを使うと、複数の変数に一度に値を割り当てられます。
t = (10, 20, 30)
a, b, c = t
print(a, b, c) # 10 20 30
一部の要素を無視する場合はアンダースコア (_
) を使います。
t = (10, 20, 30, 40, 50)
a, _, c, _, e = t
print(a, c, e) # 10 30 50
可変長のアンパックも可能です。
t = (1, 2, 3, 4, 5)
a, *middle, b = t
print(a) # 1
print(middle) # [2, 3, 4]
print(b) # 5
タプルのイテレーションによる取り出し
for ループを使ってタプルの要素を順番に取り出せます。
t = (10, 20, 30, 40)
for item in t:
print(item)
インデックスが必要な場合は enumerate()
を使います。
t = ("a", "b", "c")
for index, value in enumerate(t):
print(f"Index {index}: {value}")
ネストされたタプルからの取り出し
タプルの中にタプルが入っている場合は、インデックスを組み合わせてアクセスできます。
t = ((1, 2), (3, 4), (5, 6))
print(t[0]) # (1, 2)
print(t[1][1]) # 4
for ループとアンパックを組み合わせると、より簡単にアクセスできます。
t = ((1, 2), (3, 4), (5, 6))
for a, b in t:
print(a, b)
発展的なタプルの取り出し方
zip() を使った取り出し
複数のタプルを並行して取り出すには zip()
を使います。
t1 = (1, 2, 3)
t2 = ("a", "b", "c")
for num, char in zip(t1, t2):
print(num, char)
辞書の items() を使った取り出し
辞書のキーと値をタプルとして取得できます。
d = {"x": 10, "y": 20}
for key, value in d.items():
print(f"{key}: {value}")
関数の戻り値としてのタプルの取り出し
関数がタプルを返す場合、それをアンパックできます。
def func():
return 1, 2, 3
x, y, z = func()
print(x, y, z) # 1 2 3