为什么我不能在Python中迭代一个Counter?

Red*_*ven 0 python python-2.7

为什么当我尝试下面的时候,我得到了need more than 1 value to unpack

for key,value in countstr:
    print key,value


for key,value in countstr:
ValueError: need more than 1 value to unpack
Run Code Online (Sandbox Code Playgroud)

但是这很好用:

for key,value in countstr.most_common():
    print key,value
Run Code Online (Sandbox Code Playgroud)

我不明白,不是countstrcountstr.most_common()同等的?

编辑:感谢下面的答案,然后我猜我不明白的是:如果countstr是映射是什么countstr.most_common()? - 我是Python新手,对不起,如果我在这里遗漏了一些简单的话.

Tim*_*ers 5

不,他们不是.迭代映射(无论是a collections.Counter还是a dict或......)仅迭代映射的键.

还有另一个不同之处:迭代a的键Counter以无定义的顺序传递它们.返回的顺序most_common()是定义的(按值的倒序排序).