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 我们都会呼叫函 ...
随机推荐
- angular6 aot 预先编译
angular.json文件:(红色加粗部分) { "$schema": "./node_modules/@angular/cli/lib/config/schema.j ...
- nodejs和mongodb常见的小错误
1.直接使用nodejs会遇到以下问题: module.js:340 throw err; ^Error: Cannot find module 'mongodb' 解决方式如下 ...
- Linux getopt/getopts解析命令行参数教程
一.说明 shell中获取参数可以直接使用$1.$2等形式来获取,但这种方式有明显的限制:每个参数的位置是固定的.比如如果在设计上$1是ip地址$2是端口,那在执行时就必须第一个参数是ip第二个参数是 ...
- 安全基线自动化扫描、生成报告、加固的实现(以Tomcat为例)
一.背景说明 当前在服务上线前,安全部门都会对服务基线配置进行把关,整个流程可以分为扫描.生成报告.修复三步. 在执行这一流程时当前普遍的做法是半自动化的,扫描和生成报告是自动化的,执行扫描.执行生成 ...
- Oracle单机Rman笔记[4]---RMAN联机备份
备注:RMAN备份(仅支持基于spfile的备份,不支持基于init.ora配置的备份) 练习:开启ARCHIVELOG模式 \为归档的重做日志被指FRA和单独的归档日志目标 SQL>show ...
- Oracle通用维、父子维相互转换
所谓通用维即维度层级1.2.3均作为字段展示为列,父子维即维度id+父级维度+维度层级字段 通用维 lvl_id1 lvl_name1 lvl_id2 lvl_name2 lvl_id3 lvl_na ...
- spring的配置与使用
spring的配置与使用 一.Spring介绍 1. 什么是Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由 RodJohnson 在其著 ...
- test--3
<script type="text/javascript">// <![CDATA[$(function () { if (isLogined &&am ...
- Eclipse在线集成SpringBoot
在线集成下载地址:http://dist.springsource.com/release/TOOLS/update/e4.8/ 注意:需要更改后面的版本号,跟随自己eclipse版本号下载,只需要改 ...
- !/usr/bin/env python和!/usr/bin/python的区别
脚本语言第一行 作用:文件中代码用指定可执行程序运行 #!/usr/bin/Python 执行脚本时,调用/usr/bin下python解释器 #!/usr/bin/env python 在环境设 ...