您的位置:首页 > 编程语言 > Python开发

Python学习八:迭代

2015-02-12 12:06 162 查看
迭代,就是C或者Java都有的,所谓的 for 循环!如果给定一个对象符合迭代条件,就可以使用for循环进行迭代,如:list 或者 tuple。

先看看Java中的for循环如何使用:

String[] list = {"1","1","1","1","1","1"};

for(int i= 0 ; i < list.length;i++){
	String temp = list[i];
	System.out.print(" " + temp);
}
那么Python中的for循环如何使用呢:

d = {'a': 1, 'b': 2, 'c': 3}
for key in d:
    print key


zhanggeng@zhanggeng:~/python_work$ python diedai.py 
C
Java
C++
默认情况下,dict迭代的是key。

如果要迭代value,可以用for value in d.itervalues():

for value in d.itervalues():
	print value
如果要同时迭代key和value,可以用for k, v in d.iteritems():

for key ,value in d.iteritems():
	print key ,value
因为字符串也是可迭代对象,所以,也可以用for循环来进行迭代:

for ch in 'Hello Kitty':
	print ch
在Python中使用for循环进行迭代的前提是,有一个可以被迭代的对象,那么如何判断一个对象是可迭代的对象?通过collections模块的Iterable类型判断:

from collections import Iterable
print isinstance('abc' , Iterable)
zhanggeng@zhanggeng:~/python_work$ python IfIterable.py 
True

from collections import Iterable
print isinstance([1,2,3] , Iterable)
zhanggeng@zhanggeng:~/python_work$ python IfIterable.py 
True

from collections import Iterable
print isinstance(123 , Iterable)
zhanggeng@zhanggeng:~/python_work$ python IfIterable.py 
False


那么,该如何对list实现类似Java那样的下标循环?Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:

for index , value in enumerate(['Java','Basic','C++']):
	print index , value


该如何在for循环里,同时引用两个变量呢?

for x, y in [(1, 2), (2, 3), (3, 4)]:
    print x, y
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: