字典值返回无效标记

时间:2014-09-03 19:29:40

标签: python python-2.7

我在尝试制作字典时遇到过这种情况。

8&当他们面前00时,9不起作用。 但其他所有人都做得很好。它与019, 099相同。

使用2.7

b = {000 : "a", 
     001 : "b", 
     002 : "c", 
     003 : "d", 
     004 : "e", 
     005 : "f", 
     006 : "g", 
     007 : "h", 
     8 :   "i", 
     9 : "j"}
print b[001]
print b[8]

虽然这不是吗?

a = {000 : "a", 
     001 : "b", 
     002 : "c", 
     003 : "d", 
     004 : "e", 
     005 : "f", 
     006 : "g", 
     007 : "h", 
     008 : "i", 
     009 : "j"}
print a[001]
print a[008]

2 个答案:

答案 0 :(得分:5)

在Python 2中,您可以通过使用0预先定义八进制文字来定义八进制文字。由于八进制数字仅包含数字0-7008009无效。

在Python 3中对此进行了更改,八进制文字现在以0o0O为前缀(数字“0”后跟字母“O”)。这类似于十六进制文字的0x表示法,二进制文件的0b表示法。

答案 1 :(得分:3)

您正在使用以0开头的整数文字,它们被解释为八进制数字(其数字范围仅为0-7)。你可能想要

b = {'000': "a", 
     '001': "b", 
     '002': "c", 
     '003': "d", 
     '004': "e", 
     '005': "f", 
     '006': "g", 
     '007': "h", 
     '008': "i", 
     '009': "j"}

如果前导零是重要的;作为整数,用于指定整数(0, 000, 0x00, etc)的表示法无论如何都不会影响实际值。