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使用shelve模块实现简单数据存储的方法
May 20 Python
Python数据结构之翻转链表
Feb 25 Python
用Python实现KNN分类算法
Dec 22 Python
解决python3 requests headers参数不能有中文的问题
Aug 21 Python
Python 多线程,threading模块,创建子线程的两种方式示例
Sep 29 Python
python 非线性规划方式(scipy.optimize.minimize)
Feb 11 Python
解决Keras 自定义层时遇到版本的问题
Jun 16 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
Aug 20 Python
详解查看Python解释器路径的两种方式
Oct 15 Python
python 利用Pyinstaller打包Web项目
Oct 23 Python
Django实现在线无水印抖音视频下载(附源码及地址)
May 06 Python
python机器学习创建基于规则聊天机器人过程示例详解
Nov 02 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使用glob函数遍历目录或文件夹的方法
2014/12/16 PHP
PHP微信开发之查询城市天气
2016/06/23 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
2016/11/10 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
Laravel框架实现利用监听器进行sql语句记录功能
2018/06/06 PHP
js jquery做的图片连续滚动代码
2008/01/06 Javascript
Javascript 中的 && 和 || 使用小结
2010/04/25 Javascript
Chrome中模态对话框showModalDialog返回值问题的解决方法
2010/05/25 Javascript
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
2011/03/25 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
ejs v9 javascript模板系统
2012/03/21 Javascript
JavaScript 基础篇之对象、数组使用介绍(三)
2012/04/07 Javascript
js验证电话号码与手机支持+86的正则表达式
2014/01/23 Javascript
对js关键字命名的疑问介绍
2014/04/25 Javascript
上传图片js判断图片尺寸和格式兼容IE
2014/09/01 Javascript
理解JavaScript的变量的入门教程
2015/07/07 Javascript
ie下js不执行的几种可能
2017/02/28 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
浅谈angular2路由预加载策略
2017/10/04 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
vuejs选中当前样式active的实例
2018/08/22 Javascript
vue中组件的过渡动画及实现代码
2018/11/21 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
Vue v-for中的 input 或 select的值发生改变时触发事件操作
2020/08/31 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
2020/11/05 Javascript
python实现的简单窗口倒计时界面实例
2015/05/05 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
2016/06/07 Python
Django中ORM表的创建和增删改查方法示例
2017/11/15 Python
python使用json序列化datetime类型实例解析
2018/02/11 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
2018/07/07 Python
Django模型修改及数据迁移实现解析
2019/08/01 Python
Python3 文章标题关键字提取的例子
2019/08/26 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
2014年银行员工年终自我评价
2014/09/19 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL