Python学习笔记之Zip和Enumerate用法实例分析


Posted in Python onAugust 14, 2019

本文实例讲述了Python Zip和Enumerate用法。分享给大家供大家参考,具体如下:

Python 中的 Zip

zip的作用:可以在处理循环时用到,返回一个将多个可迭代对象组合成一个元组序列的迭代器。每个元组都包含所有可迭代对象中该位置的元素。

my_zip = list(zip(['a', 'b', 'c'], [1, 2, 3]))
print(my_zip) # [('a', 1), ('b', 2), ('c', 3)]

正如 range() 一样,我们需要将其转换为列表或使用循环进行遍历以查看其中的元素。

letters = ['a', 'b', 'c']
nums = [1, 2, 3]
for letter, num in zip(letters, nums):
  print("{}: {}".format(letter, num))

输出如下:

a: 1
b: 2
c: 3

除了可以将两个列表组合到一起之外,还可以使用星号拆封列表,返回的是单个元组

some_list = [('a', 1), ('b', 2), ('c', 3)]
letters, nums = zip(*some_list)
print(letters) # ('a', 'b', 'c')
print(nums) # (1, 2, 3)

Python 中的 Enumerate

enumerate 是一个会返回元组迭代器的内置函数,这些元组包含列表的索引和值。当你需要在循环中获取可迭代对象的每个元素及其索引时,将经常用到该函数。

示例代码:

letters = ['a', 'b', 'c', 'd', 'e']
for i, letter in enumerate(letters):
  print(i, letter)

输出如下:

0 a
1 b
2 c
3 d
4 e

Python 中的 Zip 和 Enumerate[相关练习]

使用 zip 写一个 for 循环,该循环会创建一个字符串,指定每个点的标签和坐标,并将其附加到列表 points。每个字符串的格式应该为 label: x, y, z。例如,第一个坐标的字符串应该为 F: 23, 677, 4。

解决方案:

x_coord = [23, 53, 2, -12, 95, 103, 14, -5]
y_coord = [677, 233, 405, 433, 905, 376, 432, 445]
z_coord = [4, 16, -6, -42, 3, -6, 23, -1]
labels = ["F", "J", "A", "Q", "Y", "B", "W", "X"]
points = []
# write your for loop here
for label, x, y, z in zip(labels, x_coord, y_coord, z_coord):
  points.append(label+": " + str(x) + ', ' + str(y) + ', ' + str(z))
for point in points:
  print(point)

输出如下:

F: 23, 677, 4
J: 53, 233, 16
A: 2, 405, -6
Q: -12, 433, -42
Y: 95, 905, 3
B: 103, 376, -6
W: 14, 432, 23
X: -5, 445, -1

使用 zip 创建一个字段 cast,该字典使用 names 作为键,并使用 heights 作为值。

解决方案:

cast_names = ["Barney", "Robin", "Ted", "Lily", "Marshall"]
cast_heights = [72, 68, 72, 66, 76]
cast = dict(zip(cast_names,cast_heights))
print(cast)

输出:

{'Barney': 72, 'Ted': 72, 'Robin': 68, 'Lily': 66, 'Marshall': 76}

将 cast 元组拆封成两个 names 和 heights 元组。

解决方案:

cast = (("Barney", 72), ("Robin", 68), ("Ted", 72), ("Lily", 66), ("Marshall", 76))
# define names and heights here
names,heights = zip(*cast)
print(names) # ('Barney', 'Robin', 'Ted', 'Lily', 'Marshall')
print(heights) # (72, 68, 72, 66, 76)

使用 zip 将 data 从 4x3 矩阵转置成 3x4 矩阵。

解决方案:

data = ((0, 1, 2), (3, 4, 5), (6, 7, 8), (9, 10, 11))
data_transpose = tuple(zip(*data))
print(data_transpose) # ((0, 3, 6, 9), (1, 4, 7, 10), (2, 5, 8, 11))

使用 enumerate 修改列表 cast,使每个元素都包含姓名,然后是角色的对应身高。例如,cast 的第一个元素应该从 “Barney Stinson” 更改为 "Barney Stinson 72”。

解决方案:

cast = ["Barney Stinson", "Robin Scherbatsky", "Ted Mosby", "Lily Aldrin", "Marshall Eriksen"]
heights = [72, 68, 72, 66, 76]
for i, c in enumerate(cast):
  cast[i] += ' ' + str(heights[i])
print(cast) # ['Barney Stinson 72', 'Robin Scherbatsky 68', 'Ted Mosby 72', 'Lily Aldrin 66', 'Marshall Eriksen 76']

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python实现爬取逐浪小说的方法
Jul 07 Python
Python学习笔记之解析json的方法分析
Apr 21 Python
Python中的is和==比较两个对象的两种方法
Sep 06 Python
Python 异常处理的实例详解
Sep 11 Python
Python3生成手写体数字方法
Jan 30 Python
对python中Matplotlib的坐标轴的坐标区间的设定实例讲解
May 25 Python
python实现基于朴素贝叶斯的垃圾分类算法
Jul 09 Python
使用python打印十行杨辉三角过程详解
Jul 10 Python
Python Web框架之Django框架Model基础详解
Aug 16 Python
基于Python和PyYAML读取yaml配置文件数据
Jan 13 Python
Python如何使用队列方式实现多线程爬虫
May 12 Python
Python实战之疫苗研发情况可视化
May 18 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
Aug 14 #Python
使用python写的opencv实时监测和解析二维码和条形码
Aug 14 #Python
用python3 urllib破解有道翻译反爬虫机制详解
Aug 14 #Python
使用Python实现图像标记点的坐标输出功能
Aug 14 #Python
python2爬取百度贴吧指定关键字和图片代码实例
Aug 14 #Python
python提取照片坐标信息的实例代码
Aug 14 #Python
python2使用bs4爬取腾讯社招过程解析
Aug 14 #Python
You might like
smarty中js的调用方法示例
2014/10/27 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
浅析PHP7新功能及语法变化总结
2016/06/17 PHP
微信利用PHP创建自定义菜单的方法
2016/08/01 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
2017/05/15 PHP
简单的js分页脚本
2009/05/21 Javascript
JS 时间显示效果代码
2009/08/23 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
nodejs中实现sleep功能实例
2015/03/24 NodeJs
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
Javascript 高性能之递归,迭代,查表法详解及实例
2017/01/08 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
2017/05/20 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
在React中如何优雅的处理事件响应详解
2017/07/24 Javascript
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
微信小程序如何自定义table组件
2019/06/29 Javascript
[01:02]DOTA2辉夜杯决赛日 CDEC.Y对阵VG赛前花絮
2015/12/27 DOTA
[01:38]完美世界DOTA2联赛PWL S3 集锦第四期
2020/12/21 DOTA
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
2015/03/30 Python
windows下python虚拟环境virtualenv安装和使用详解
2019/07/16 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
2020/05/19 Python
Python configparser模块常用方法解析
2020/05/22 Python
python设置中文界面实例方法
2020/10/27 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
2020/12/24 Python
使用HTML5在网页中嵌入音频和视频播放的基本方法
2016/02/22 HTML / CSS
微信小程序canvas实现水平、垂直居中效果
2020/02/05 HTML / CSS
Perfume’s Club美国官网:西班牙第一家在线美容店
2020/06/10 全球购物
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
大学新学期计划书
2014/04/28 职场文书
纪律教育学习心得体会
2014/09/02 职场文书
尊老爱幼演讲稿
2014/09/04 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
毕业生爱心捐书倡议书
2015/04/27 职场文书
python获取带有返回值的多线程
2022/05/02 Python
SQL Server数据库备份和恢复数据库的全过程
2022/06/14 SQL Server