for语句,range() 函式
for 语句在任意序列 (列表或者字符串) 中迭代时, 总是按照元素在序列中的出现顺序依次迭代.
2 ... a = ['cat', 'window', 'defenestrate']
3 >>> for x in a:
4 ... print(x, len(x))
5 ...
6 cat 3
7 window 6
8 defenestrate 12
如果你需要在循环体内修改你正迭代的序列 (例如说,复制序列中选定的项), 你最好是制作一个副本. 在序列上的迭代并不会自动隐式地创建
一个副本. 切片标记让这种操作十分方便:
1 >>> for x in a[:]: # 制 造 整 个 列 表 的 切 片 复 本
2 ... if len(x) > 6: a.insert(0, x)
3 ...
4 >>> a
5 ['defenestrate', 'cat', 'window', 'defenestrate']
如果需要一个数值序列, 使用内建函式 range() 会很方便. 它产生等
差级数序列:
1 >>> for i in range(5):
2 ... print(i)
3 ...
4 0
5 1
6 2
7 3
8 4
给出的终止点不会在生成的序列里; range(10) 生成 10 个值, 组成一个
长度为 10 的合法序列. 可以让 range 的起始初值定为另一个数, 也可以指
定一个不同的增量 (甚至可以为负; 有时这被称为’ 步长’):
1 range(5, 10)
2 5 through 9
3
4 range(0, 10, 3)
5 0, 3, 6, 9
6
7 range(-10, -100, -30)
8 -10, -40, -70
要对一个序列的索引进行迭代的话, 组合使用 range() 和 len():
1 >>> a = ['Mary', 'had', 'a', 'little', 'lamb']
2 >>> for i in range(len(a)):
3 ... print(i, a[i])
4 ...
5 0 Mary
6 1 had
7 2 a
8 3 little
9 4 lamb
多数情况中, 用 enumerate() 函式更加方便, 参见遍历技巧.
直接打印 range 的时候会发生奇怪的事情:
1 >>> print(range(10))
2 range(0, 10)
在许多情况下, range() 的返回值和列表的行为类似, 但是事实上并非
如此. range() 是这样一个对象: 当你对它的返回值进行迭代时, 它确实返
回了一些连续的项, 但是它并没有创建这样一个列表, 并因此节省了空间.
for语句,range() 函式的更多相关文章
- 可爱的Python_课后习题_CDay−3 通过函式进行功能化
1. 读取某一简单索引文件cdays−3-test.txt,其每行格式为:文档序号关键词,现须根据这些信息将它转化为倒排索引,即统计关键词在哪些文档中,格式如下:包含该关键词的文档数关键词 => ...
- 使用本函式处理后的字串会沿续到PHP程式而转入eval函数
html码放在数据库里,通过php文件调用,经过一系列处理后,用eval函数 将希望的变量带入生成所需要的动态页.这样,我就没再看vbb源码,而转入eval函数了. 星空浪子的php中文手册是这样介绍 ...
- JavaScript中的內定物件與函式: arguments, callee, caller, this, apply(), call()
arguments, caller, callee, this都是用在函式(function)內的特殊內定物件.而apply()及call()則是用來呼叫函式的不同作法. arguments可用來取得 ...
- C++ 檔案、資料夾、路徑處理函式庫:boost::filesystem
原帖:https://tokyo.zxproxy.com/browse.php?u=uG7kXsFlW1ZmaxKEvCzu8HrCJ0bXIAddA1s5dtIUZ%2FYzM1u9JI7jjKLT ...
- Android studio: 自 maven 增加一個函式庫
在 android studio 裏要加入一個 3rd party 的 library 其實不是很麻煩, 祇是現在沒有 UI, 所以需要一些手動作業.看來 google 很看好 android stu ...
- 学JS的心路历程-函式(六)其余参数及预设参数
今天我们要来介绍ES6新增的其余参数及预设参数! 其余参数rest parameter …numbers可以让我们表示不确定数量的参数,并将其视为一个数组: function getVal(…numb ...
- 学JS的心路历程-函式(五)箭头函式
箭头函式arrow function 为了能够以更简短的方式建立函式,ES6变推出了箭头函式. 用说明的可能会不太懂,我们先拿之前的数组排序例子来看: var arr = [2,1,6,12,3,77 ...
- 学JS的心路历程-函式(四)apply、call
从上一篇可以知道,不同的函式呼叫会造成this的不同,但我们能不能在呼叫时候明确指定呢? 当然可以.会有这个想法是因为往往在执行某支函式时想要用回呼函式(mizumisushi),但发现this总是显 ...
- 学JS的心路历程 -函式(三)this
this是什么,取决于被呼叫的呼叫地点. 昨天有提到说,呼叫函式时候会传递隐含参数:arguments和this并讲解了arguments,今天我们就来探讨this吧! 什么是this 我们都会呼叫函 ...
随机推荐
- 在Linux服务器非root权限下搭建TensorFlow框架(Anaconda)
今天终于动手折腾实验室的服务器啦!由于权限原因,只能在自己的路径下安装TensorFlow. 1. 下载安装Anaconda 官网下载地址:https://www.anaconda.com/downl ...
- composer的安装方法 以及 ThinkPHP5安装
1.下载installer的文件,使用浏览器开启链接:getcomposer.org/installer,下载如下文件到 E:\xs2016\composer, 将installer重命名为compo ...
- java前的部分了解(计算机小白)
一.加密 对称加密: des 3des AES rc4 (数据加密) 会话密钥 非对称加密(成对:公钥/私钥(一个加密一个解密)):RSA DSA 密钥交换 / 数字签名(用私钥加密摘要算法出的一串数 ...
- Python2.X和Python3.X中Tkinter模块的文件对话框、下拉列表的不同
Python2.X和Python3.X文件对话框.下拉列表的不同 今天初次使用Python Tkinter来做了个简单的记事本程序.发现Python2.x和Python3.x的Tkinter模块的好多 ...
- 五、Vi和Vim编辑器
1. Vim编辑器: 在Linux下一般使用vi编辑器来编辑文件.vi既可以查看文件也可以编辑文件.三种模式: 命令行.插入.底行模式 切换到命令行模式:按Esc键: 切换到插入模式:按 i .o.a ...
- mysql的报错
这个错误是因为mysql的进程错误关闭导致的,我们需要把/var/lib/mysql/mysql.sock文件删除或者改名,之后再重启就ok
- [Oracle][DATAGUARD] PHYSICAL STANDBY环境里,11.2.0.4 , 也可以使用Pfile来运行Primary和Standby(虽然很少有人用)
####Primary#### [oracle@primary ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on 金 ...
- Altium 添加altera 或xilinx 芯片库的方法
从altera或xilinx官网下载库,在library添加即可
- python常见问题汇总
1.python使用selenium中的时间等待 a.强制等待 time.sleep() b.隐式等待: 如果某些元素不是立即可用的,隐式等待是告诉WebDriver去等待一定的时间后去查找元素. 默 ...
- ESP32搭建1.VMware Workstation 12.5下Ubuntu16.04环境搭建(简易搭建)
一.需要下载的资源: 1. 下载VMware Workstation 链接: https://pan.baidu.com/s/1nuDEc3n 密码: 89xc 2. 下载Ubuntu ...