迭代
定义
用for
循环对list或tuple进行遍历我们称之为迭代(Iteration)
- 只要属于list类型的对象都可以被迭代.
- Python的
for
循环抽象程度要比Java的高,迭代不仅可以用在list或tuple上还可以用在其他迭代对象上.比如dict,str.
>>> d = {
'a':1,'b':2,'c':3}
>>> for x in d:
... print x
...
a
c
b
>>> str = 'abc'
>>> for s in str:
... print s
...
a
b
c
dict是无序的所以输出结果也无序.dict默认迭代的是key,如果要迭代value呢?可以使用for value in d.itervalues()
,如果需要同时迭代key和value可以用for k, v in d.iteritems()
.
- 但是如何判断一个对象是否是可迭代对象呢?我们可以通过collection模块里的Iterable类进行判断.
>>> from collections import Iterable
>>> isinstance('abc',Iterable)
True
>>> isinstance((1,2,3),Iterable)
True
>>> isinstance([1,2,3],Iterable)
True
>>> isinstance(123,Iterable)
False
for
可以同时迭代两个变量
>>> for x,y in ((1,1),(2,2),(3,3)):
... print x ,y
...
1 1
2 2
3 3
开拓思维要是需要迭代2个以上的对象呢?
>>> for a,b,c in [(1,1,1),(2,2,2),(3,3,3)]:
... print a,b,c
...
1 1 1
2 2 2
3 3 3
列表生成式
定义
列表生成式是Python内置的非常强大的可以用来创建list的生成式
例:生成[1…10]的list
>>> range(1,11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
但是如果生成[1x1,2x2,3x3….10x10]的list怎么办?
方法1:循环
>>> for x in range(1,11):
... y = x * x
... L.append(y)
...
>>> L
[1, 4, 9,