Pythonのタプルで要素が1つの時にカンマ「,」を付ける理由とは?【初心者向けに解説】
こんにちは。ゆうせいです。
Pythonを学び始めたばかりのとき、「あれ?」と思うような、ちょっと不思議なルールに出会うことってありますよね。
その中でも、多くの新人エンジニアの方が一度は首をかしげるのが、タプルの「あるルール」ではないでしょうか。
# これは整数型(int)
value1 = (1)
print(type(value1))
# <class 'int'>
# こっちがタプル型(tuple)
value2 = (1,)
print(type(value2))
# <class 'tuple'>
上のコードのように、要素が1つだけのタプルを作ろうとすると、値の後にカンマ(,)が必要になるのです。
(1)と書いてもタプルになってくれないなんて、最初は少し戸惑いますよね。
今回は、なぜこんなルールになっているのか、その理由を一緒に見ていきましょう!
そもそもカッコ「()」の役割とは?
この謎を解くカギは、Pythonにおける丸カッコ () の役割にあります。
実は、丸カッコはタプルを作るため「だけ」のものではありません。皆さんにもっと馴染み深い、別の重要な役割があるのです。
それは、計算の優先順位を変える役割です。
小学校の算数で習ったのを覚えていますか?
例えば、 2 + 3 * 5 という式があったとします。この計算結果は 17 ですよね。掛け算が先に計算されます。
もし足し算を先に計算したい場合、私たちは次のように書くはずです。
(2 + 3) * 5
こうすることで、カッコの中が優先されて計算され、結果は 25 になります。
Pythonでも、このルールは全く同じです。丸カッコは「この中を先に計算してね!」という、計算のグループ化の合図として使われるのです。
カンマ「,」こそがタプルの本体
ここで、先ほどの (1)
をPythonがどう見ているか考えてみましょう。
Pythonの気持ちになってみると、「これは計算をグループ化するためのカッコかな? それとも、要素が1つのタプルなのかな?」と、迷ってしまいます。
もし (1) をタプルとして扱ってしまうと、私たちが単に計算の優先順位を明確にしたいときに (1) と書けなくなり、非常に不便ですよね。
そこでPythonの設計者は、明確なルールを設けました。
「丸カッコ ()
だけでは、計算のグループ化を優先する。タプルを作りたいときは、カンマ ,
を目印にしよう!」
つまり、Pythonにとってタプルをタプルたらしめているのは、実は丸カッコよりもカンマの方なのです。カンマがあることで、Pythonは「お、これはタプルだな!」と判断してくれる、というわけです。
ですから、要素が1つのタプルを作るときは (1,) のように、カンマを付けて「これはタプルですよ」と明示的に教えてあげる必要があるのですね。
ちなみに、要素が2つ以上あれば (1, 2) のように必ずカンマが入るので、Pythonが迷うことはありません。
まとめと今後の学習
いかがでしたか?
一見すると奇妙なルールに思えるかもしれませんが、背景には「計算のグループ化」という、カッコの基本的な役割を邪魔しないための、ちゃんとした理由があったのです。
- 丸カッコ
()
の主な役割: 計算の優先順位を決めるグループ化 - カンマ
,
の役割: 「これはタプルですよ」とPythonに教える目印
このような言語の細かな仕様を理解していくと、なぜそのように設計されているのかという思想が見えてきて、プログラミングがもっと面白くなりますよ。
この知識を足がかりに、次はタプルとよく似ている「リスト」との違いや、それぞれの使い分けについて学んでみるのがおすすめです。特に、タプルが持つ「不変(イミュータブル)」という性質は非常に重要なので、ぜひ調べてみてください!
投稿者プロフィール
- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
山崎講師2025年10月11日属人化を防ぐ!再現性と網羅性を高めるテスト設計の基本
全ての社員2025年10月11日交渉で損しない!エンジニアが知るべきBATNAとZOPAの関係とは?
山崎講師2025年10月10日【AI開発の登竜門】Google製ライブラリ「TensorFlow」とは?新人エンジニア向けに徹底解説!
山崎講師2025年10月10日【入門】scikit-learnとは?機械学習の「家庭教師」を新人エンジニア向けに徹底解説!