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

本文详细介绍了Python中for循环的使用方法,包括如何遍历不同类型的序列(如字符串、元组和列表),并特别讲解了如何正确遍历字典类型,通过实例演示了将字典转换为列表再进行遍历的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 "<pyshell#6>", line 1, in <module>
    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)
<type 'list'>
>>> 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)
<type 'list'>
>>> print li
[('NBA', '\xb6\xae\xc7\xf2\xb5\xdb'), ('KFC', '\xbf\xcf\xb5\xc2\xbb\xf9')]


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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值