Python中for循环的一些非常规操作

For循环是Python中最常用的一种循环结构了,相信大家都对For循环的常规操作非常熟悉了,所以在这里我就不介绍For循环的基本用法了,仅介绍一些非常规的操作供大家参考学习。

1. 非穷尽遍历(遍历过程中跳过元素)--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 

显然第二种分片的方法要简单得多,推荐大家使用。

2. 并行遍历 --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')]

3. 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
posted @ 2020-04-16 11:08  海淀区小吴同学  阅读(266)  评论(0编辑  收藏  举报