Python range、enumerate和zip函数用法详解


Posted in Python onSeptember 11, 2019

前言

range函数可创建一个整数列表。

如果需要知道当前元素在列表中的索引,推荐用enumerate代替range。

zip函数用于同时遍历多个迭代器。

一、range 函数

range函数可创建一个整数列表,一般用在 for 循环中。

语法:

range([start,] stop[, step])

参数:

start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0,5);

stop: 计数到 stop 结束,但不包括 stop。例如:range(0,5) 是[0,1,2,3,4]没有5

step:步长,默认为1。例如:range(0,5) 等价于 range(0,5,1)
使用例子:

for i in range(5):
  print(i, end=' ') #输出:0 1 2 3 4 
print()
for i in range(1,5):
  print(i, end=' ') #输出:1 2 3 4 
print()
for i in range(0,5,2):
  print(i, end=' ') #输出:0 2 4 
print()
for i in range(0,-5,-1):
  print(i, end=' ') #输出:0 -1 -2 -3 -4
print()
fruit_list = ['apple', 'banana','pear']
for i in range(len(fruit_list)):
  print(i, fruit_list[i]) 
'''输出:
apple
banana
pear
'''

二、enumerate函数

enumerate函数用于将各种迭代器(如列表、元组或字符串)包装为生成器,生成器每次产生一对输出值,前者表示循环下标,后者表示从迭

代器中获取到的下一个序列元素。一般用在 for 循环当中。

需要知道当前元素在列表中的索引,推荐用enumerate代替range,代码便于简洁和易理解。

语法:

enumerate(sequence, [start=0])

参数:

sequence: 一个序列、迭代器或其他支持迭代对象。

start:下标起始位置。

使用例子:

fruit_list = ['apple', 'banana','pear']
for i,fruit in enumerate(fruit_list):
  print(i, fruit) 
'''输出:
apple
banana
pear
'''
for i,fruit in enumerate(fruit_list, 1):
  print(i, fruit) 
'''输出:
apple
banana
pear
'''

三、zip函数

zip函数可以把两个或两个以上的迭代器封装为生成器,以便稍后求值。

生成器会从每个迭代器中获取下一个值,然后把这些值汇聚成元组。

语法:

zip([iterable, ...])

参数:

iterabl:一个或多个迭代器

使用例子:

index_list = [0, 1, 2, 3, 4]
fruit_list = ['apple', 'banana','pear']
for index,fruit in zip(index_list,fruit_list):
  print(index,fruit)
'''输出:
apple
banana
pear
'''
d = dict(zip(index_list,fruit_list))
print(d)
'''转换为字典,输出:
{0: 'apple', 1: 'banana', 2: 'pear'}
'''

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python计数排序和基数排序算法实例
Apr 25 Python
Python计算三维矢量幅度的方法
Jun 15 Python
利用 Monkey 命令操作屏幕快速滑动
Dec 07 Python
Python AES加密模块用法分析
May 22 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
Jun 26 Python
Python Pandas数据结构简单介绍
Jul 03 Python
windows 10 设定计划任务自动执行 python 脚本的方法
Sep 11 Python
python numpy之np.random的随机数函数使用介绍
Oct 06 Python
Pyspark读取parquet数据过程解析
Mar 27 Python
在django admin中配置搜索域是一个外键时的处理方法
May 20 Python
Python 必须了解的5种高级特征
Sep 10 Python
python 下载文件的多种方法汇总
Nov 17 Python
Python 实现文件读写、坐标寻址、查找替换功能
Sep 11 #Python
Python使用APScheduler实现定时任务过程解析
Sep 11 #Python
基于Python实现剪切板实时监控方法解析
Sep 11 #Python
python连接、操作mongodb数据库的方法实例详解
Sep 11 #Python
面向对象学习之pygame坦克大战
Sep 11 #Python
Python整数与Numpy数据溢出问题解决
Sep 11 #Python
python中通过selenium简单操作及元素定位知识点总结
Sep 10 #Python
You might like
火影忍者:这才是千手柱间和扉间的真正死因,角都就比较搞笑了!
2020/03/10 日漫
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
php微信公众号开发之快递查询
2018/10/20 PHP
一些常用的JavaScript函数(json)附详细说明
2011/05/25 Javascript
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
简介JavaScript中的getSeconds()方法的使用
2015/06/10 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
js面向对象的写法
2016/02/19 Javascript
基于JS判断iframe是否加载成功的方法(多种浏览器)
2016/05/13 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
Vue2.5通过json文件读取数据的方法
2018/02/27 Javascript
总结js函数相关知识点
2018/02/27 Javascript
vue-cli项目优化方法- 缩短首屏加载时间
2018/04/01 Javascript
vue 设置路由的登录权限的方法
2018/07/03 Javascript
微信小程序 数据缓存实现方法详解
2019/08/26 Javascript
细述Javascript的加法运算符的具体使用
2019/10/18 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
[29:23]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场1
2014/05/23 DOTA
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
[02:21]2018完美盛典章节片——初心
2018/12/17 DOTA
Python标准库shutil用法实例详解
2018/08/13 Python
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
Django中reverse反转并且传递参数的方法
2019/08/06 Python
Tensorflow获取张量Tensor的具体维数实例
2020/01/19 Python
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
英国在线花园中心:You Garden
2018/06/03 全球购物
优秀团支部事迹材料
2014/02/08 职场文书
护士岗前培训自我评鉴
2014/02/28 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
民间借贷借条范本
2015/05/25 职场文书
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
2021/06/08 Python
深入理解java.lang.String类的不可变性
2021/06/27 Java/Android
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL