【Python入門】tupleの一歩進んだ使い方

今回はPythonでのタプルの進んだ使い方について解説していきます。

この記事では、

・タプルとは
・タプルとリストの変換方法

という基本的な内容から、

・タプルをソートする方法
・タプルを部分的に取得する方法
・名前付きタプル(namedtuple)の使い方

というやや発展的な内容まで、解説をしていきます。

なお、Pythonの記事については、こちらにまとめています。

タプルとは

まずはタプルとは何かについて知っておきましょう。

タプルは、リストと同じように複数の値を持つことが出来るデータ構造です。

ただ、イミュータブルな型(あとから変更ができないという意味です)であり、リストで出来たこと(要素の追加、削除)が出来ないという特徴もあります。

このことから、変更をしたくないような変数の定義にもタプルは使われます。

これから解説していくタプルについての基礎知識については、こちらの記事をご覧ください。

【Python tuple】タプルの使い方やリストとの違いについて解説
更新日:2023年3月21日

【なかなかエラーが解決できない…そんな悩みを解決します!】

登録無料で始められるプログラミングスクール「侍テラコヤ」

・回答率100%のQ&A掲示板でエラーを解決!
現役エンジニアとのオンライン相談で悩みを解決!
・50種類以上の教材で複数言語を習得!

侍テラコヤについて詳しく見る

タプルとリストの変換方法

ここで、よく使われるタプルリスト変換方法についておさらいしておきましょう。

タプルからリストの変換にはlist関数が使われます。

tp = (1, 2, 3, 4, 5)
print(list(tp))

実行結果

[1, 2, 3, 4, 5]

また、リストからタプルの変換にはtuple関数が使われます。

list = [1, 2, 3, 4, 5] 
tuple(list)

実行結果

(1, 2, 3, 4, 5)

どちらも覚えやすく簡単ですね。

タプルをソートする方法

タプルの要素はソート(並び替え)することも出来ます。

こちらのコードをご覧ください。

tp = (1, 9, 3, 7, 5, 8)
ntp = sorted(tp)
tuple(ntp)
print(ntp)

実行結果

(1, 3, 5, 7, 8, 9)

こちらのコードではsorted関数を使ってソートをしています。

タプルはイミュータブルな型なので厳密に言えばソートは出来ません

なので、一度リスト型になったデータをtuple関数でタプルに変換をしています。


【なかなかエラーが解決できない…そんな悩みを解決します!】

登録無料で始められるプログラミングスクール「侍テラコヤ」

・回答率100%のQ&A掲示板でエラーを解決!
現役エンジニアとのオンライン相談で悩みを解決!
・50種類以上の教材で複数言語を習得!

侍テラコヤについて詳しく見る

タプルを部分的に取得する方法

タプルの一部分を取得するには、スライスという機能を使います。

スライスについてはこちらの記事で詳しく解説しているのでぜひご覧ください。

Pythonのスライスの使い方を4つのパターンで簡単解説
更新日:2023年3月21日

スライスはシーケンス型に対して使える機能なので、タプルにも使うことが出来ます。

こちらのコードをご覧ください。

tp = (1, 3, 5, 7, 8, 9)
print(tp[0:3]) # インデックスの0〜2まで
print(tp[2:]) # インデックスの2以上
(1, 3, 5) # インデックスの0〜2まで
(5, 7, 8, 9) # インデックスの2以上

タプルを部分的に使いたいという場合でもスライスを使えばより便利になりますね!

名前付きタプルの使い方

タプルには名前付きタプル(namedtuple)と呼ばれるものがあります。

この名前付きタプルは応用すればC言語の構造体のように使うことが出来ます。

こちらのコードを見てみましょう。

from collections import namedtuple

Human = namedtuple('Human', ('name','sex', 'age'))

namedtupleの第一引数がクラス名にあたり、第二引数でそのクラスの情報を定義することが出来ます。

オブジェクトの作成はこのようになります。

human1 = Human('Taro', 'man', '19')

また、クラスのようにドットを使った形でアクセスすることが出来ます。

print(human1.name)
print(human1.sex)
print(human1.age)

実行結果

Taro
man
19

このように、名前付きタプルを使えば普通のタプルを使うよりもわかりやすくデータを扱うことが出来ます。

まとめ

この記事ではタプル名前付きタプル(namedtuple)の使い方について解説してきました。

以前も解説はしましたが、より詳しい使い方がわかって頂けたかと思います。

また名前付きタプルについても、使い方を身につければとても便利な武器になります。

タプルの使い方について忘れてしまったら、ぜひまたこの記事をご覧ください。

なお、今Pythonを学習している方は以下の記事もどうぞ。

はじめてPythonを使う方でもわかりやすいように、Pythonでできることやその学習法などを中心にまとめています。

復習にも使えると思いますので、ぜひ一度ご覧になってみてくださいね。

Python 入門完全攻略ガイド

プログラミング学習中、
誰かへ相談したいことはありませんか?

SAMURAI TERAKOYA

プログラミングはエラーの連続。作業を進めるなかで誰かに教えてほしい場面は多いですよね。

そんな悩みを解決できるのが、侍テラコヤです。登録無料で始められて、現役エンジニアとオンラインで相談できるほか、回答率100%のQA掲示版でプログラミングに関する悩みを解決します!

気になる方はぜひ詳細をご覧ください。

→侍テラコヤの詳細をみる

Writer

侍テック編集部

株式会社SAMURAI

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI TERAKOYA

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら
Close