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')]
好吧!城里人真会玩。。。