python2.7错误for k,v in dict: ValueError: too many values to unpack

The for statement

The for statement is used to iterate over the elements of a sequence (such as a string, tuple or list) or other iterable object:
for_stmt ::=  "for" target_list "in" expression_list ":" suite
              ["else" ":" suite]

for语句用来遍历序列元素(字符串,元组,列表)或者其他可遍历对象;

不能遍历字典类型:
>>> d = {'NBA':'懂球帝','KFC':'肯德基'}
>>> for k,v in d:
     print "%s=%s" % (k, v)

Traceback (most recent call last):
  File "", line 1, in
    for k,v in d:
ValueError: too many values to unpack
>>>

小编你就使劲吹吧!不能遍历字典类型,我可是在其他书看到可以遍历k,v哦,不你看看:
>>> import os
>>> for k, v in os.environ.items():
    print "%s=%s" % (k, v)
    
TMP=C:\Users\wuhz3\AppData\Local\Temp
USERDOMAIN=CN
SPARK_HOME=D:\spark\spark-1.2.0
PSMODULEPATH=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
......

尼玛,还真可以遍历字典类型呀!小编还是去刷朋友圈(红包照片)吧!这个世界太会玩。。。。。

看官,不急,待小编慢慢道来!
我们先打印一下os.environ.items()类型
>>> a = os.environ.items()
>>> type(a)

>>> print a
[('TMP', 'C:\\Users\\wuhz3\\AppData\\Local\\Temp'), ('USERDOMAIN', 'CN'), ('SPARK_HOME', 'D:\\spark\\spark-1.2.0'),......]

哦!哦!哦,明明了os.environ.items()返回的时一个list类型元组数据呀!
可是我还是想打印字典类型的值,怎么实现呢?好着急,好着急,真是一个执着的孩纸!
好吧!允小编想想!是否可以把字典类型转换为一个元素是tuple的Listl类型呢?哇!真聪明!

>>> d = {'NBA':'懂球帝','KFC':'肯德基'}
>>> li=d.items()
>>> for k,v in li:
    print "%s=%s" % (k, v)

NBA=懂球帝
KFC=肯德基
>>> type(li)

>>> print li
[('NBA', '\xb6\xae\xc7\xf2\xb5\xdb'), ('KFC', '\xbf\xcf\xb5\xc2\xbb\xf9')]


好吧!城里人真会玩。。。

你可能感兴趣的:(Python,Programming)