赞
踩
For
循环是Python中最常用的一种循环结构了,相信大家都对For
循环的常规操作非常熟悉了,所以在这里我就不介绍For
循环的基本用法了,仅介绍一些非常规的操作供大家参考学习。
range()
和分片- >>> a = [1, 2, 3, 4, 5, 6]
- # 若想访问a中的第奇数个元素
-
- # Method 1: range()
- >>> for i in range(0, len(a), 2):
- print(a[i], end=' ')
- 1 3 5
-
- # Method 2: 分片
- >>> for i in a[::2]:
- print(i, end=' ')
- 1 3 5
显然第二种分片的方法要简单得多,推荐大家使用。
Zip
zip()
函数可以让我们利用for
循环并行访问多个序列:zip()
函数的输入参数为一个或多个序列,它的返回值是这些序列并排的元素配对得到的元组列表
- >>> a = [1, 2, 3, 4]
- >>> b = ['a', 'b', 'c', 'd']
-
- >>> list(zip(a, b))
- [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
-
- >>> for (x, y) in zip(a, b):
- ... print(x, y)
- 1 a
- 2 b
- 3 c
- 4 d
注意:zip()
函数返回的元组长度以输入的各序列中最短的为准。
- >>> a = [1, 2, 3, 4]
- >>> b = ['a', 'b', 'c', 'd', 'e', 'f']
-
- >>> list(zip(a, b))
- [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
enumerate()
同时给出偏移量和元素enumerate()
函数会返回一个生成器对象,这个对象可以在循环的每次迭代返回一个(index, value)的元素,因此可以同时得到偏移量和元素:
- >>> a = ['a', 'b', 'c', 'd', 'e']
- >>> for ind,item in enumerate(a):
- ... print('index:{}, item:{}'.format(ind, item))
- index:0, item:a
- index:1, item:b
- index:2, item:c
- index:3, item:d
- index:4, item:e
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。