详细记录python的range()函数用法

使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节。这里记录一下range(),复习下list的slide,最后分析一个好玩儿的冒泡程序。

这里记录一下:
1.range函数
- range(start,end,step=1) 起始,终止(不包含),步长(默认为1)
- range(start,end)
- rang(end)(0~end)

>>> range(1,5) #代表从1到5(不包含5)
[1, 2, 3, 4]
>>> range(1,5,2) #代表从1到5,间隔2(不包含5)
[1, 3]
>>> range(5) #代表从0到5(不包含5)
[0, 1, 2, 3, 4]

再看看list的操作:

array = [1, 2, 5, 3, 6, 8, 4]
#其实这里的顺序标识是
[1, 2, 5, 3, 6, 8, 4]
(0123456)
(-7,-6,-5,-4,-3,-2,-1)

List是有序的,分为正序(从左向右)和倒序(从右向左),任意一个非空的List的第一个元素总是List[0],包含n个元素的list的正序的最后一个元素为List[n-1],因为list从0开始的。任意一个非空的List倒序的第一个元素为List[-1],正负的换算关系为List[n] = List[len(List)-n]。

>>> array[0:] #列出0以后的
[1, 2, 5, 3, 6, 8, 4]
>>> array[1:] #列出1以后的
[2, 5, 3, 6, 8, 4]
>>> array[:-1] #列出-1之前的
[1, 2, 5, 3, 6, 8]
>>> array[3:-3] #列出3到-3之间的
[3]

那么两个[::]会是什么那?

>>> array[::2]
[1, 5, 6, 4]
>>> array[2::]
[5, 3, 6, 8, 4]
>>> array[::3]
[1, 3, 4]
>>> array[::4]
[1, 6]

如果想让他们颠倒形成reverse函数的效果

>>> array[::-1]
[4, 8, 6, 3, 5, 2, 1]
>>> array[::-2]
[4, 6, 5, 1]

感觉自己懂了吧,那么来个冒泡吧:

array = [1, 2, 5, 3, 6, 8, 4]
for i in range(len(array) - 1, 0, -1):
print i
for j in range(0, i):
print j
if array[j] > array[j + 1]:
array[j], array[j + 1] = array[j + 1], array[j]
print array

一行一行的来看:

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]
那么上边两个循环嵌套起来将会是

i————6
j————0j————1j————2j————3j————4j————5

i————5
j————0j————1j————2j————3j————4
i————4
j————0j————1j————2j————3
i————3
j————0j————1j————2
i————2
j————0j————1

line 4:if array[j] > array[j + 1]:

>>> array = [1, 2, 5, 3, 6, 8, 4]
>>> array[0]
1
>>> array[1]
2
>>> array[2]
5
>>> array[3]
3
>>> array[4]
6
>>> array[5]
8
>>> array[6]
4

其实·就是使用这个把这个没有顺序的array = [1, 2, 5, 3, 6, 8, 4]排序

line 5:array[j], array[j + 1] = array[j + 1], array[j] 替换赋值

line 6:打印出来

其实要想省事儿,sort()函数一句就能搞定…….

–EOF–

作者:Buro#79xxd 出处:http://www.cnblogs.com/buro79xxd/ 文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文链接:
http://www.cnblogs.com/buro79xxd/archive/2011/05/23/2054493.html

更多相关文章

  1. Python3入门(六)——函数式编程
  2. Python执行系统命令:使用subprocess的Popen函数
  3. python传递列表作为函数参数
  4. python的内置函数
  5. python魔法方法、构造函数、序列与映射、迭代器、生成器
  6. 从Python中的列表元素中删除URL
  7. 用python写MapReduce函数——以WordCount为例
  8. Python内置函数介绍
  9. Python学习之路:函数的非固定参数

随机推荐

  1. windows下多版本python安装
  2. 在python中创建指数函数。
  3. 你怎么检查python字符串是否只包含数字?
  4. python-selenium-定位一组对象
  5. Python学习记录--关于列表和字典的比较
  6. scikit-learn:在标记化时不要分隔带连字符
  7. 分析标签集的最佳方法是什么?
  8. 学习Python爬虫(五):爬取图片
  9. python飞船游戏(三)
  10. 深度学习与计算机视觉系列(1)_基础介绍