为什么我不能让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" }
或者,如果前导零非常重要,请使用字符串作为键。