很长时间以来,我一直在寻找这个问题的答案。我到处尝试,但可能是我搜索错误的关键字,如果是,请原谅我问了一个愚蠢的或已经回答的问题。
我正试图在python2.2中弹出一本字典。下面是我试图运行的代码片段:
ABRA= {}
ABRA[0] = ['MENU', ['TV', 'MENU']]
ABRA[1] = ['TV', 'PC', ['RM', 'LM']]
count = 0
KADABRA = ABRA.pop(count).pop()
print(str(KADABRA))
print(len(KADABRA))
count += 1
KADABRA = ABRA.pop(count)
print(str(KADABRA))当我在像Codepad这样的在线解释器中输入这段代码时,它可以工作,并得到所需的输出,当我希望它在我希望它运行的服务器上运行时,它不会运行。我得到以下错误:
AttributeError ('dict‘对象没有属性'pop')。
我没有在代码中看到错误,也没有看到我调用pop的方式有什么错误。我甚至试着去掉“双”弹。还是个错误。如果我把它列成一个清单而不是像这样的白痴:
ABRA = ['MENU', ['TV', 'MENU']]
KADABRA = ABRA.pop()
print(str(KADABRA))
print(len(KADABRA))然后我就能得到正确的指纹了。但我不想要一张名单,而是一个白痴。我见过一些用弹出来的例子。所以,我的问题是,为什么我不能在我的服务器上弹出这个数据集,或者,除了弹出数据集之外,还有其他的选择呢?
发布于 2014-09-01 09:32:54
新版本2.3。
换句话说,Python2.2中没有这样的方法。
您可以通过以下方式自己实现这一点:
_sentinel = object()
def pop_dict(d, k, default=_sentinel):
try:
v = d[k]
del d[k]
return v
except KeyError:
if default is _sentinel:
raise
return default将其用作:
pod_dict(ABRA, count)https://stackoverflow.com/questions/25602790
复制相似问题