详细记录python的range()函数用法
使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节。这里记录一下range(),复习下list的slide,最后分析一个好玩儿的冒泡程序。
这里记录一下:
>>> 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](0,1,2,3,4,5,6)(-7,-6,-5,-4,-3,-2,-1)>>> 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()函数一句就能搞定.......
出处:http://www.cnblogs.com/buro79xxd/
详细记录python的range()函数用法的更多相关文章
- Python的range()函数用法
Python的range()函数有三种用法,简单地说就是下图的三种用法: 运行结果如下:
- (转)python的range()函数用法
使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节.这里记录一下range(),复习下list的slide,最后分析一个好玩儿的冒泡程序. 转自: ...
- [转载]python的range()函数用法
使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节.这里记录一下range(),复习下list的slide,最后分析一个好玩儿的冒泡程序. 这里记 ...
- python中range()函数的用法
python中range()函数可创建一个整数列表,一般用在for循环中. range()函数语法: range(start,stop[,step]) 参数说明: star: 计数从star开始.默认 ...
- Python range() 函数用法及字符串下标
range() 函数用法 range() 函数可创建一个整数列表,一般用在 for 循环中 range() 函数的表示方法: range(start, stop[, step]) start: 计数从 ...
- 【313】python 中 print 函数用法总结
参考:python 中 print 函数用法总结 参考:Python print() 函数(菜鸟教程) 参考:Python 3 print 函数用法总结 目录: 字符串和数值类型 变量 格式化输出 p ...
- Python 3 print 函数用法总结
Python 3 print 函数用法总结 1. 输出字符串和数字 print("runoob") # 输出字符串 runoob print(100) ...
- python的range()函数使用方法
python的range()函数使用非常方便.它能返回一系列连续添加的整数,它的工作方式类似于分片.能够生成一个列表对象. range函数大多数时常出如今for循环中.在for循环中可做为索引使用.事 ...
- [Python随笔]>>range()函数?
因为自己在考核的时候没有记清range()函数的具体用法,所以特意去查了下 Python range() 函数用法 python range() 函数可创建一个整数列表,一般用在 for 循环中 函数 ...
随机推荐
- python 可变参数
原文地址:http://docs.pythontab.com/python/python3.4/controlflow.html#tut-functions 一个最不常用的选择是可以让函数调用可变个数 ...
- Spring与apache CXF结合实例
本文的前提是已经有一个Spring的项目,在此基础上如何跟apache CXF进行结合,开发出WebService服务和调用WebService服务. 1.开发WebService 1.引入jar ...
- BZOJ1500 维修数列
AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=1500 [前言] 据说没打这题就相当于没打过Splay,这题简直就是让你内心崩溃的... 这 ...
- ActiveMQ主从配置
这种方式有个问题,activemq1有消息没消费完但是突然宕机,虽然程序会自动连到activemq2.但是activemq1的消息只有等机器恢复后才会被消费. 1.启动:我这里使用的是apache-a ...
- 查看windows系统热键占用情况
有时候我们经常用一些软件中的快捷键,但是会发现快捷键设置的很正确,但是就是不起作用.这就是因为这些快捷键被系统或者其他软件占用了. 那么这时我们怎么知道是哪个软件占用了呢?这确实是个纠结的问题,还好大 ...
- Nodejs Express 4.X 中文API 2--- Request篇
相关阅读: Express 4.X API 翻译[一] -- Application篇 Express4.XApi 翻译[二] -- Request篇 Express4.XApi 翻译[三] -- ...
- .NET设计模式(18):迭代器模式(Iterator Pattern)(转)
概述 在面向对象的软件设计中,我们经常会遇到一类集合对象,这类集合对象的内部结构可能有着各种各样的实现,但是归结起来,无非有两点是需要我们去关心的:一是集合内部的数据存储结构,二是遍历集合内部的数据. ...
- 关于SOAP
http://www.tutorialspoint.com/soap/index.htm http://www.w3.org/TR/2000/NOTE-SOAP-20000508/ SOAP协议规范介 ...
- javascript设计模式-迭代器模式(Iterator)
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- mysql去除重复查询的SQL语句基本思路
SELECT R.* FROM trans_flow R, (SELECT order_no, MAX(status_time) AS status_time FROM trans_flow GROU ...