【Python】学习笔记十四:循环进阶

range()

在Python中,for循环后的in跟随一个序列的话,循环每次使用的序列元素,而不是序列的下标。

我们继续开发range的功能,以实现下标对循环的控制:

s = 'abcdefghj'
for i in range(0,len(s),3):
    print(i,s[i])

在该例子中,我们利用len()函数和range()函数,用i作为S序列的下标来控制循环。在range函数中,分别定义上限,下限和每次循环的步长。这就和C语言中的for循环相类似了。

 

enumerate()

利用enumerate()函数,可以在每次循环中同时得到下标和元素:

s = 'abcdefghj'
for (seq,char) in enumerate(s):
    print(seq)
    print(char)

实际上,enumerate()在每次循环中,返回的是一个包含两个元素的定值表(tuple),两个元素分别赋予seq和char

 

zip()

如果你多个等长的序列,然后想要每次循环时从各个序列分别取出一个元素,可以利用zip()方便地实现:

temp_a = (1,2,3)
temp_b = ['a',2,3]
temp_c = (1,'oliver',3)
for (a,b,c) in zip(temp_a,temp_b,temp_c):
    print(a,b,c)

每次循环时,从各个序列分别从左到右取出一个元素,合并成一个tuple,然后tuple的元素赋予给a,b,c

屏幕打印结果如下:

image

posted @ 2017-10-17 17:51  OLIVER_QIN  阅读(271)  评论(0编辑  收藏  举报