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 相关文章推荐
在Docker上部署Python的Flask框架的教程
Apr 08 Python
总结网络IO模型与select模型的Python实例讲解
Jun 27 Python
Python如何实现文本转语音
Aug 08 Python
解决Django模板无法使用perms变量问题的方法
Sep 10 Python
python实现人脸识别代码
Nov 08 Python
python编程通过蒙特卡洛法计算定积分详解
Dec 13 Python
详解Python核心编程中的浅拷贝与深拷贝
Jan 07 Python
python:print格式化输出到文件的实例
May 14 Python
python实现windows壁纸定期更换功能
Jan 21 Python
值得收藏的10道python 面试题
Apr 15 Python
Django 批量插入数据的实现方法
Jan 12 Python
Python tkinter和exe打包的方法
Feb 05 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
人族 Terran 魔法与科技
2020/03/14 星际争霸
Opcache导致php-fpm崩溃nginx返回502
2015/03/02 PHP
为你总结一些php信息函数
2015/10/21 PHP
php递归函数怎么用才有效
2018/02/24 PHP
PHP页面静态化――纯静态与伪静态用法详解
2020/06/05 PHP
javascript比较文档位置
2008/04/08 Javascript
表单的焦点顺序tabindex和对应enter键提交
2013/01/04 Javascript
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
js 获取浏览器版本以此来调整CSS的样式
2014/06/03 Javascript
利用vue-router实现二级菜单内容转换
2016/11/30 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
2017/04/13 Javascript
浅谈通过JS拦截 pushState和replaceState事件
2017/07/21 Javascript
详解如何用babel转换es6的class语法
2018/04/03 Javascript
详解JavaScript中的数组合并方法和对象合并方法
2018/05/11 Javascript
jQuery pjax 应用简单示例
2018/09/20 jQuery
jquery绑定事件 bind和on的用法与区别分析
2020/05/22 jQuery
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
python迭代器实例简析
2014/09/25 Python
python中sets模块的用法实例
2014/09/30 Python
基于pandas数据样本行列选取的方法
2018/04/20 Python
Django之提交表单与前后端交互的方法
2019/07/19 Python
Pytorch反向求导更新网络参数的方法
2019/08/17 Python
Python使用Socket实现简单聊天程序
2020/02/28 Python
iHerb香港:维生素、补充剂和天然保健品
2017/08/01 全球购物
奥斯汀独木舟和皮划艇:Austin Canoe & Kayak
2018/05/22 全球购物
StringBuilder和String的区别
2015/05/18 面试题
通息工程毕业生自荐信
2013/10/16 职场文书
宿舍打麻将检讨书
2014/01/24 职场文书
教学器材管理制度
2014/01/26 职场文书
产品质量承诺范本
2014/03/31 职场文书
工商行政管理专业求职书
2014/05/23 职场文书
邀请函模板
2015/02/02 职场文书
2015年人事科工作总结
2015/04/28 职场文书
2015年教研组工作总结
2015/05/04 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
vue里使用create, mounted调用方法
2022/04/26 Vue.js