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 psutil模块简单使用实例
Apr 28 Python
基python实现多线程网页爬虫
Sep 06 Python
python 打印出所有的对象/模块的属性(实例代码)
Sep 11 Python
TensorFlow实现iris数据集线性回归
Sep 07 Python
python 实现selenium断言和验证的方法
Feb 13 Python
用Python中的turtle模块画图两只小羊方法
Apr 09 Python
使用python实现简单五子棋游戏
Jun 18 Python
详解Python文件修改的两种方式
Aug 22 Python
Pyecharts绘制全球流向图的示例代码
Jan 08 Python
Matplotlib.pyplot 三维绘图的实现示例
Jul 28 Python
python 爬取哔哩哔哩up主信息和投稿视频
Jun 07 Python
Python3中PyQt5简单实现文件打开及保存
Jun 10 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
法压式咖啡之制作法
2021/03/03 冲泡冲煮
javascript,php获取函数参数对象的代码
2011/02/03 PHP
解析百度搜索结果link?url=参数分析 (全)
2012/10/09 PHP
PHP基于IMAP收取邮件的方法示例
2017/08/07 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
jQuery.extend 函数的详细用法
2012/06/27 Javascript
javascript 判断中文字符长度的函数代码
2012/08/27 Javascript
JQuery中SetTimeOut传参问题探讨
2013/05/10 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
jQuery源码解读之removeAttr()方法分析
2015/02/20 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
老生常谈JavaScript 函数表达式
2016/09/01 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
2016/10/27 Javascript
easyui combobox开启搜索自动完成功能的实例代码
2016/11/08 Javascript
Javascript 实现 Excel 导入生成图表功能
2018/10/22 Javascript
基于nodejs的雪碧图制作工具的示例代码
2018/11/05 NodeJs
原生js实现文件上传、下载、封装等实例方法
2020/01/05 Javascript
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
利用Python实现命令行版的火车票查看器
2016/08/05 Python
利用Python脚本实现ping百度和google的方法
2017/01/24 Python
Python编程之变量赋值操作实例分析
2017/07/24 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
python计算auc的方法
2020/09/09 Python
纯HTML+CSS3制作导航菜单(附源码)
2013/04/24 HTML / CSS
HTML5样式控制示例代码
2013/11/27 HTML / CSS
个人求职信范文分享
2013/12/13 职场文书
培训班开班仪式主持词
2014/03/28 职场文书
项目申报专员岗位职责
2014/07/09 职场文书
老人节标语大全
2014/10/08 职场文书
2015年公司后勤管理工作总结
2015/05/13 职场文书
小组口号霸气押韵
2015/12/24 职场文书
《失物招领》教学反思
2016/02/20 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server
Python实现数据的序列化操作详解
2022/07/07 Python