1.1   迭代

1.1.1   listtuple迭代

如果给定一个listtuple,我们可以通过for循环来遍历这个listtuple,这种遍历我们称为迭代(Iteration)。

>>> L = [1, 2, 3]

>>> for i in L:                  --list迭代

...    print(i)

...

1

2

3

>>> for i in L:

...    n = i

...    print(n)

...

1

2

3

>>> L = (1, 2, 3)

>>> for i in L:                  --tuple迭代

...    print(i)

...

1

2

3

Pythonfor循环不仅可以用在listtuple上,还可以作用在其他可迭代对象上。

1.1.2   dict的迭代

>>> d = {'a':1, 'b':2, 'c':3}

>>> d

{'a': 1, 'b': 2, 'c': 3}

>>> for key in d:

...    print(key)

...

a

b

c

因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样。

注意:dict默认迭代的是key

1.1.3   dictvalue迭代

>>> for value in d.values():

...    v_value = value

...    print(v_value)

...

1

2

3

1.1.4   dictkeyvalue同时迭代

>>> for k, v in d.items():

...    print(k)

...    print(v)

...

a

1

b

2

c

3

1.1.5   字符串的迭代

>>> for i in 'DAIDAI':

...    print(i)

...

D

A

I

D

A

I

1.1.6   判断对象是可迭代对象

>>> fromcollections import Iterable

>>> isinstance('abc',Iterable)

True

>>> isinstance(123,Iterable)

False

1.1.7   enumerate函数

函数作用:可以把一个listtuple变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身

>>> for i,value in enumerate((1, 2, 3)):

...    print(i, value)

...

0 1

1 2

2 3

>>> for i, value in enumerate((1,2, 3)):

...    print(i)

...    print(value)

...

0

1

1

2

2

3

>>> for i,value in enumerate(['a', 'b', 'c']):

...    print(i, value)

...

0 a

1 b

2 c

1.1.8   同时引用了两个变量

>>> for x, y in ((1,2), (3,4)):

...    print(x, y)

...

1 2

3 4

>>> for x, y in ((1,2), (3,4)):

...    print(x)

...    print(y)

...

1

2

3

4

>>> for x, y in [(1,2), (3,4)]:

...    print(x, y)

...

1 2

3 4