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中统计函数运行耗时的方法
May 05 Python
Windows下安装python MySQLdb遇到的问题及解决方法
Mar 16 Python
教大家玩转Python字符串处理的七种技巧
Mar 31 Python
Python中import机制详解
Nov 14 Python
Python实现加载及解析properties配置文件的方法
Mar 29 Python
python实现比较文件内容异同
Jun 22 Python
python 多线程对post请求服务器测试并发的方法
Jun 13 Python
python3多线程知识点总结
Sep 26 Python
jupyter notebook 实现matplotlib图动态刷新
Apr 22 Python
python操作微信自动发消息的实现(微信聊天机器人)
Jul 14 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
Dec 03 Python
Python实现随机爬山算法
Jan 29 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
php随机输出名人名言的代码
2012/10/07 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
2013/05/06 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
2015/12/22 PHP
PHP预定义变量9大超全局数组用法详解
2016/04/23 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
2015/03/04 Javascript
javascript实现倒计时并弹窗提示特效
2015/06/05 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
2016/04/17 Javascript
怎么引入(调用)一个JS文件
2016/05/26 Javascript
JavaScript toUpperCase()方法使用详解
2016/08/26 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
vue-cli webpack 引入jquery的方法
2018/01/10 jQuery
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
JavaScript仿京东秒杀倒计时
2020/03/17 Javascript
Python字典操作简明总结
2015/04/13 Python
Python中的自省(反射)详解
2015/06/02 Python
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
Python如何快速上手? 快速掌握一门新语言的方法
2017/11/14 Python
Pycharm无法使用已经安装Selenium的解决方法
2018/10/13 Python
Python处理时间日期坐标轴过程详解
2019/06/25 Python
AmazeUI 等分网格的实现示例
2020/08/25 HTML / CSS
GANT葡萄牙官方商店:拥有美国运动服传统的生活方式品牌
2018/10/18 全球购物
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
Wiggle新西兰:自行车、跑步、游泳
2020/05/06 全球购物
领导干部群众路线个人对照检查材料思想汇报
2014/09/30 职场文书
医生学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
党员剖析材料范文
2014/12/18 职场文书
计算机考试作弊检讨书1000字
2015/01/01 职场文书
Python竟然能剪辑视频
2021/05/25 Python
MySQL库表太大怎么办? 数据库分库分表项目实践
2022/04/11 MySQL
css3 文字断裂效果
2022/04/22 HTML / CSS
Jmerte 分布式压测及分布式压测配置
2022/04/30 Java/Android