python - 为什么 008 和 009 是 Python 字典的无效键?

标签 python dictionary python-2.x

为什么我不能让 008 或 009 成为 Python 字典的键,但 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" }

或者如果前导零真的很重要,则使用字符串作为键。

关于python - 为什么 008 和 009 是 Python 字典的无效键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/991978/

相关文章:

python - 有条件地合并多个词典

python - 如何将 python 字符串数据转换为列表或字典?

python 嵌套列表到字典

python - 在排序期间尝试引用列表时出现 IndexError

python - 使用来自 ajax 响应的嵌套值导航 Python 字典

python - 将函数分配为对象的属性,然后在没有隐含的 'self' 参数的情况下调用?

python - 通过仅复制键从旧字典创建字典

python - turtle.done() 在 Spyder 中不起作用

python - 比较两个字典的键值并返回一个有差异的新字典

python - 一个 Python 脚本将 "user input"提供给另一个 Python 脚本