range 也是一种类型(type),它是一个数字的序列(s sequence of numbers),而且是不可变的,通常用在for循环中。
对于第一种构造方式,start默认值为0,step默认值为1。
当step为正时,一个range的元素值为r[i] = start + i * step 且 r[i] < stop; step为负时,r[i] > stop。
使用python的人都知道range()函数很方便,下面再介绍一些用法。
再回顾一下,看看list的操作:
那么两个[::]会是什么样子呢?
差不多了解的话,再试图了解用 Python 实现冒泡排序吧(循环):
- line 1:array = [1, 2, 5, 3, 6, 8, 4]一个乱序的list没什么好解释的
- line 2:for i in range(len(array) - 1, 0, -1):这就是上边给的例子的第二条,我们替换下就成为range(6,1,-1),意思是从6到1间隔-1,也就是倒序的range(2,7,1),随后把这些值循环赋给i,那么i的值将会是[6, 5, 4, 3, 2]
- line 3:for j in range(0, i):这是一个循环赋值给j,j的值将会是[0, 1, 2, 3, 4, 5][0, 1, 2, 3, 4][0, 1, 2, 3][0, 1, 2][0, 1]
- 那么上边两个循环嵌套起来将会是
- line 4:if array[j] > array[j + 1]:
其实就是使用这个把这个没有顺序的array = [1, 2, 5, 3, 6, 8, 4]排序。
- line 5:array[j], array[j + 1] = array[j + 1], array[j] 替换赋值
- line 6:打印出来