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自动调用IE打开某个网站的方法
Jun 03 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
Jan 28 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
Apr 27 Python
python 借助numpy保存数据为csv格式的实现方法
Jul 04 Python
Python将一个Excel拆分为多个Excel
Nov 07 Python
详解pyppeteer(python版puppeteer)基本使用
Jun 12 Python
Python中面向对象你应该知道的一下知识
Jul 10 Python
Python3 JSON编码解码方法详解
Sep 06 Python
使用pickle存储数据dump 和 load实例讲解
Dec 30 Python
keras的load_model实现加载含有参数的自定义模型
Jun 22 Python
解决导入django_filters不成功问题No module named 'django_filter'
Jul 15 Python
django有哪些好处和优点
Sep 01 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模板类代码
2008/09/07 PHP
基于php缓存的详解
2013/05/15 PHP
PHP变量内存分配问题记录整理
2013/11/27 PHP
CodeIgniter中实现泛域名解析
2014/07/19 PHP
redis+php实现微博(一)注册与登录功能详解
2019/09/23 PHP
js removeChild 障眼法 可能出现的错误
2009/10/06 Javascript
jQuery ctrl+Enter shift+Enter实现代码
2010/02/07 Javascript
关于JavaScript中var声明变量作用域的推断
2010/12/16 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
jQuery+CSS 半开折叠效果原理及代码(自写)
2013/03/04 Javascript
JS获取地址栏参数的小例子
2013/08/23 Javascript
详解js闭包
2014/09/02 Javascript
jquery实现的淡入淡出下拉菜单效果
2015/08/25 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
2015/09/09 Javascript
jquery form表单获取内容以及绑定数据
2016/02/24 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
JS实现登录页密码的显示和隐藏功能
2017/12/06 Javascript
详解微信小程序canvas圆角矩形的绘制的方法
2018/08/22 Javascript
深入剖析JavaScript instanceof 运算符
2019/06/14 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
[01:57]2018DOTA2亚洲邀请赛赛前采访-iG
2018/04/03 DOTA
python函数的作用域及关键字详解
2019/08/20 Python
python神经网络编程实现手写数字识别
2020/05/27 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
2020/09/04 Python
CSS3 3D制作实战案例分析
2016/09/18 HTML / CSS
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
SQL数据库笔试题
2016/03/08 面试题
Ajxa常见问题都有哪些
2014/03/26 面试题
党员政治学习材料
2014/05/14 职场文书
艾滋病宣传标语
2014/06/25 职场文书
社会体育专业大学生职业生涯规划书
2014/09/17 职场文书
实习证明格式范文
2014/10/14 职场文书
用 Python 定义 Schema 并生成 Parquet 文件详情
2021/09/25 Python
改造DE1103三步曲
2022/04/07 无线电
python中使用redis用法详解
2022/12/24 Redis