008または009をPythonのdictのキーにすることはできませんが、001-007は問題ありません。 例:008と009はなぜPythonの辞書に無効なキーですか?
some_dict = {
001: "spam",
002: "eggs",
003: "foo",
004: "bar",
008: "anything", # Throws a SyntaxError
009: "nothing" # Throws a SyntaxError
}
更新:問題は解決しました。私はゼロでリテラルを始めることはそれを8進数にしたことを知らなかった。それは本当に奇妙に思える。なぜゼロ?
なぜPythonでですか?歴史的な前提(Cがやった)。私はそれがかなり愚かであることに同意するので、なぜそれがCにあったのか分かりません。 – Jacob
ええ、私たちはそれに立ち往生しています。ゼロを持つ必要がある場合は、代わりに文字列にします。辞書は正常に動作します。 –
オクタルリテラルは「o」(すなわちo73)で表されていました。なぜC言語でゼロ(0)に変更されたのか分かりません。 16進数(基数16)はx(または0x)接頭辞または 'h'接尾辞(0x2AE、2AEh)で表されています。そして、いくつかの言語では、接頭辞「b」を使用して2進数を表しています。 –