2016-02-02 58 views
2

我有这样的代码:如何打印在双端队列项目(蟒蛇)

import collections 

def last3scores(): 
    return collections.deque([], 3) 

user_last3 = collections.defaultdict(last3scores) 

#after this I have some more code and then this: 

user_last3[name].append(score) 

print(str(user_last3)) 

但是当我运行该程序,我得到这个:

defaultdict(<function last3scores at 0x0000000003806E18>, {'nick': deque([2], maxlen=3)}) 

我想什么得到的是这个:

{'nick': [2]} 

有没有一种方法可以在Python 3中完成。*?

+0

你的意思是'{ '缺口': [2]}'?这是你想要的输出吗? –

+0

'user_last3 = collections.defaultdict(last3scores)'您正在使用函数构建字典。 'user_last3 = collections.defaultdict(last3scores())'调用函数代替 –

+0

@ Mr.E,'defaultdict'的第一个参数必须调用。所以这是正确的。 – vovaminiof

回答

0

这应该做的伎俩(在Python 3 *开关的items代替iteritems):

>>> {k:list(v) for k,v in user_last3.iteritems()} 
{'nick': [2]} 
+0

我收到了: {k:list(v)for k,v in user_last3.iteritems()} AttributeError:'collections.defaultdict'对象没有属性'iteritems' – Nick

+0

切换'items'而不是'iteritems'在Python 3. * – Idos

+0

谢谢!完美的作品:) – Nick

0

也许你可以尝试以下操作:

for key, value in user_last3.iteritems(): 
    print key, value 
+0

你必须申请'名单()'的'value',否则你会得到相同的字符串表示如图所示的问题。 – BlackJack

+0

我收到此错误代码 – Nick