为什么我不能让008或009成为python dict的键,但001-007可以吗?
例子:

some_dict = {
    001: "spam",
    002: "eggs",
    003: "foo",
    004: "bar",
    008: "anything", # Throws a SyntaxError
    009: "nothing"   # Throws a SyntaxError
    }

更新:问题已解决。我不知道以零开头的文字是八进制的。这似乎很奇怪。为什么是零?

最佳答案

在Python和其他一些语言中,如果以0开头一个数字,则该数字将被解释为八进制(以8为基数),其中只有0-7是有效数字。您必须将代码更改为:

some_dict = {
    1: "spam",
    2: "eggs",
    3: "foo",
    4: "bar",
    8: "anything",
    9: "nothing" }

或者,如果前导零非常重要,请使用字符串作为键。

10-05 21:56