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多线程编程(七):使用Condition实现复杂同步
Apr 05 Python
在Python的Django框架中编写编译函数
Jul 20 Python
Python下载指定页面上图片的方法
May 12 Python
Django查询数据库的性能优化示例代码
Sep 24 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
Nov 01 Python
Python使用pickle模块实现序列化功能示例
Jul 13 Python
python 实现将多条曲线画在一幅图上的方法
Jul 07 Python
Python如何调用JS文件中的函数
Aug 16 Python
Python基于time模块表示时间常用方法
Jun 18 Python
PyQt5 QDockWidget控件应用详解
Aug 12 Python
matplotlib交互式数据光标实现(mplcursors)
Jan 13 Python
python实战之一步一步教你绘制小猪佩奇
Apr 22 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
PHP安装问题
2006/10/09 PHP
php下使用SimpleXML 处理XML 文件
2010/02/27 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
laravel5.2表单验证,并显示错误信息的实例
2019/09/29 PHP
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
javascript 检测浏览器类型和版本的代码
2009/09/15 Javascript
基于jquery的一个图片hover的插件
2010/04/24 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
2015/09/06 Javascript
第九篇Bootstrap导航菜单创建步骤详解
2016/06/21 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
bootstrap modal+gridview实现弹出框效果
2017/08/15 Javascript
JS返回顶部实例代码
2020/08/09 Javascript
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
使用python分析git log日志示例
2014/02/27 Python
Python检测QQ在线状态的方法
2015/05/09 Python
在Python中操作时间之strptime()方法的使用
2020/12/30 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
python变量的存储原理详解
2019/07/10 Python
django一对多模型以及如何在前端实现详解
2019/07/24 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
python列表生成器迭代器实例解析
2019/12/19 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
Python paramiko使用方法代码汇总
2020/11/20 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
Sperry官网:帆船鞋创始品牌
2016/09/07 全球购物
美国隐形眼镜网:Major Lens
2018/02/09 全球购物
20岁生日感言
2014/01/13 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
知识改变命运演讲稿
2014/05/21 职场文书
奥巴马当选演讲稿
2014/09/10 职场文书
二审答辩状格式
2015/05/22 职场文书
Python OpenCV超详细讲解读取图像视频和网络摄像头
2022/04/02 Python