LoginSignup
0
0

空の Tuple は ( , ) ではない

Last updated at Posted at 2023-12-28

この文書の目的

一要素の Tuple は (1,) と書くのに空 Tuple は (,) ではなく ( ) と書くことを知った時の驚きを書き残したい、という、だけ、のものです。
(ああ話が終わってしまった)

つまり

Python の Tuple は、

  • 三要素の Tuple は (1, 2, 3) と書く    ← わかる
  • 二要素の Tuple は (1, 2) と書く    ← わかる
  • 一要素の Tuple は (1, ) と書く    ← ええええ
    • ( 1 ) と書くと int の 1 だと認識される    ← なるほど仕方ない
    • (1, ) と書くことで一要素の Tuple だと認識される    ← ええええ

そうか「 , 」があることが Tuple を産むのか、と思いきや、

  • 空の Tuple は ( , ) ではなく ( ) と書く    ← なんということ
    • ( ) と書くと空 Tuple    ← ほうそう来たか
    • ( , ) と書くと文法エラー    ← ええええ

直感的には、

  • ( ,1) と書くと今は文法エラーだが、これも一要素の Tuple とすることにして、
  • (,) と書くと空 Tuple になる

方がしっくりくる感じもあるが、まあ仕方ないか。

補足

なお a = 1, 2 のように、曖昧さなくこれは Tuple だと判断できる場合は ( ) は不要です。
type(1, 2) と書くとしかし type( ) 関数に引数が二つあると解釈されてしまうので、こうした場合は type( (1, 2) ) と書かねばなりません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0