for
循環的數據類型有如下幾種:
list
、
tuple
、
dict
、
set
、
str
等;
generator
,包括生成器和帶
yield
的generator function。
for
循環的對象統稱爲可迭代對象:
Iterable
。
isinstance()
判斷一個對象是不是
Utterable
對象。
next()
函數調用並不斷返回下一個值的對象稱爲迭代器:Iterator
。
Iterator
對象,但
list
、
dict
、
str
雖然是
Iterable
,卻不是
Iterator
。
list
、
dict
、
str
等
Iterable
變成
Iterator
可使用
iter()
函數:
for
循環的對象都是
Iterable
類型; 凡是可做用於
next()
函數的對象都是
Iterator
類型,它們表示一個惰性計算的序列;
list
、
dict
、
str
等是
Iterable
但不是
Iterator
,不過能夠經過
iter()
函數得到一個
Iterator
對象。
for
循環本質上就是經過不斷調用
next()
函數實現的
for
循環本質上就是經過不斷調用
next()
函數實現的,
對於可迭代對象,for語句能夠經過iter()方法獲取迭代器,而且經過next()方法得到容器的下一個元素。例如:
for
x
in
[
1
,
2
,
3
,
4
,
5
]:
pass
實際上徹底等價於:python
Foo/
|-- bin/ | |-- foo | |-- foo/ | |-- tests/ | | |-- __init__.py | | |-- test_main.py | | | |-- __init__.py | |-- main.py | |-- docs/ | |-- conf.py | |-- abc.rst | |-- setup.py |-- requirements.txt |-- README
簡要解釋:算法