如何在Python中打印deque(双端队列)中的项目

3

I have this code:

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.*中实现这个?

你的意思是 {'nick': [2]} 吗?这就是你想要的输出吗? - Andrea Corbellini
user_last3 = collections.defaultdict(last3scores) 你正在使用一个函数来构建字典。user_last3 = collections.defaultdict(last3scores()) 应该调用这个函数。 - Mr. E
@Mr.E,defaultdict的第一个参数必须是可调用的。所以这是正确的。 - vovaminiof
@AndreaCorbellini 是的,就是那个。 - Nick
2个回答

1
这应该可以解决问题(在Python 3.*中,请使用items而不是iteritems):
>>> {k:list(v) for k,v in user_last3.iteritems()}
{'nick': [2]}

我得到了这个: {k:list(v) for k,v in user_last3.items()} AttributeError: 'collections.defaultdict'对象没有'iteritems'属性。 - Nick
在Python 3.*中,使用items替代iteritems来进行switch操作。 - Idos
我想升级一级,但我还没有15的声望。 - Nick

0

或许你可以尝试以下方法:

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

你需要对value应用list(),否则你将得到与问题中显示的相同的字符串表示。 - BlackJack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接