详细记录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]
(0123456)
(-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()函数一句就能搞定.......

--EOF--

转载于:https://www.cnblogs.com/muziyunxuan/p/8274270.html

详细记录python的range()函数用法相关推荐

  1. 菜鸟教程python3循环语句_详细记录python的range()函数用法|python3菜鸟教程

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

  2. python range函数返回的是什么,python中range函数用法是什么

    python中range函数用法:[range()]函数可创建一个整数列表,一般用在for循环中,函数语法为[range(start, stop[, step])],其中start是开始计数,stop ...

  3. (转)python的range()函数用法

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

  4. Python中range()函数用法

    函数原型:range(start, stop, step) 这里的start和step都是可以缺省的,start缺省状态下默认取值为0,step缺省状态下默认取值为1 几种常见的用法:print(li ...

  5. python的range()函数用法

    再看看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,- ...

  6. Python中range函数的基本用法完全解读

    range函数大多数时常出现在for循环中,在for循环中可做为索引使用,下面这篇文章主要给大家介绍了关于Python中range函数的基本用法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下 ...

  7. python中range 函数_pythonrange,range函数的用法

    当range()函数内填入第三个参数时,第三个参数表示百步长.函数语法:range(start,stop[,step])参数说明:start:计数从度start开始.默认是从0开始.例知如道range ...

  8. Python range() 函数用法细解(附猴子吃桃问题引例)

    Python range() 函数用法细解 --步入大学,好多计算机系的同学可能专业课学c或者java,但是随着python变成语言的崛起,往往一些学校也会要求学生们学习Python这门编程语言(我们 ...

  9. python中symbols函数用法_Python基础之函数用法实例详解

    本文以实例形式较为详细的讲述了Python函数的用法,对于初学Python的朋友有不错的借鉴价值.分享给大家供大家参考之用.具体分析如下: 通常来说,Python的函数是由一个新的语句编写,即def, ...

最新文章

  1. sql server 2005分页存储过程和sql server 2000分页存储过程(摘)
  2. AI将成科学家“高级定制”工具
  3. 【原创】Kakfa utils源代码分析(二)
  4. 使用masonry布局旋转View的问题
  5. Apollo后台配置:命名空间Namespqce配置及代码读取
  6. ReentrantLock锁
  7. 巧用HashSet装载非重数据(洛谷P2250题题解,Java语言描述)
  8. 十、request.getSession( )、reqeust.getSession(false)和 request.getSession(true)
  9. DAS 2020 Keynote Speech | Adobe 文档分析技术介绍
  10. 卷王李富贵算法每日一题--分治算法(四)--循环比赛
  11. Python 中的json字符串以及使用
  12. mysql 锁24小时_MySQL中Alter table 不长时间锁表的情况汇总。
  13. python内建函数(不完全)
  14. 美国下注15亿美元重点搞芯片!电子复兴5年计划首批入围项目曝光
  15. mysql使用mybatis删除不生效_解决myBatis中删除条件的拼接问题
  16. 基于OpenCV与MFC的人脸识别
  17. 【Java面试】Java面试简历—轻松月薪过w(附赠最全简历模板)
  18. 《 阿房宫赋》古文鉴赏
  19. 用数据分析看泰坦尼克号
  20. CentOS 7 ping不通提示“Name or service not kown“的解决办法

热门文章

  1. /etc/hosts/中HOSTNAME错误导致lsnrctl启动错误
  2. 以太坊,EOS和其他DApps的总数达到2,432,但没有大规模采用
  3. jpg在线合并jpg_JPG如何运作
  4. HTTP协议中的Range和Content-Range
  5. (C++)201709-1 打酱油
  6. STARTUP报错:ORA-00205: error in identifying control file, check alert log for more info
  7. java http head 请求_http请求头header、请求体body、请求行介绍
  8. 通过改进算法来优化程序性能的真实案例(Ransac)
  9. Graphviz样例之无向图
  10. 设计模式----组合模式UML和实现代码