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年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。