Python内置函数--zip()

简介: Python内置函数--zip()

「zip()是一个内置函数,它接受一个或多个可迭代项作为输入。它返回一个对象,该对象包含基于索引映射的输入可迭代项的元素。简单的理解就是将不同的元素重新按照一定顺序排序并返回一个元组。数据结构是可以改变的。」

简单示例

list_1 = [1,2,3]
list_2 = [4,5,6]
list_3 = [7,8,9]
for zips in zip(list_1,list_2,list_3):
    print(zips)
"""
(1, 4, 7)
(2, 5, 8)
(3, 6, 9)
"""

常见的用法列表变成字典

strs = ["flower","flow","flight"]
strs1 = ["name","name1"]
a = dict(zip(strs1,strs))
print(a)
"""
{'name': 'flower', 'name1': 'flow'}
"""

起关键作用的还是dict,普通的zip只能进行类似于取值排序的作用

strs = ["flower","flow","flight"]
strs1 = ["name","name1"]
a = zip(strs1,strs)
print(a.__next__())

「('name', 'flower')这是迭代取值,如果是zip(strs1,strs),得到的是zip类。迭代一次 取一次值,顺序根据strs1,strs先后然后上下进行」

zip与*

strs = ["flower","flow","flight"]
a1 = zip(*strs)
for i in a1:
    print(i)
"""('f', 'f', 'f')
('l', 'l', 'l')
('o', 'o', 'i')
('w', 'w', 'g')
有意思的可以发现,默认以最短的字符串长度进行循环输出"""

根据源码示例,zip+range的用法可以很清楚的得到每一个元素的下标值

strs = ["flower","flow","flight"]
b = list(zip(*strs,range(5)))
print(b)
"""[('f', 'f', 'f', 0), ('l', 'l', 'l', 1), 
('o', 'o', 'i', 2), ('w', 'w', 'g', 3)]
"""

虽然长度不一样,但是依旧可以看到下标值

strs = ["flower","flow","flight"]
ss = list(map(set, zip(*strs)))
print(ss)
"""[{'f'}, {'l'}, {'i', 'o'}, {'w', 'g'}]"""

列表嵌套元组解包

l1,l2 = zip(*[('Aston', 'GPS'),
              ('Audi', 'Car Repair'),
              ('McLaren', 'Dolby sound kit')
           ])
print(l1)
print(l2)
"""
('Aston', 'Audi', 'McLaren')
('GPS', 'Car Repair', 'Dolby sound kit')
"""

此处可以理解为先解包再迭代。

目录
相关文章
|
5天前
|
Python
Python闭包函数和计时器
本文介绍了闭包函数的概念,它允许内部函数引用外部作用域的变量但无法修改它们。示例展示了如何使用闭包来封装函数。接着,文章讨论了如何在函数调用时添加开始和结束的打印语句,通过传递函数作为参数实现。然后,文章引入装饰器,通过闭包定义了一个`timer`装饰器,用于在函数执行前后打印消息。最后,给出了一个练习,实现了一个计算函数执行时间的装饰器,处理了带有参数的被装饰函数。
12 1
|
2天前
|
程序员 开发者 Python
Python中的装饰器:优雅而强大的函数修饰工具
在Python编程中,装饰器是一种强大的工具,它可以简洁地实现函数的增强、扩展和重用。本文将深入探讨Python中装饰器的工作原理、常见应用场景以及如何自定义装饰器,帮助读者更好地理解和运用这一重要的编程概念。
|
3天前
|
数据采集 Python
10个Python set 常用操作函数!,bilibili面试题
10个Python set 常用操作函数!,bilibili面试题
10个Python set 常用操作函数!,bilibili面试题
|
3天前
|
数据采集 数据挖掘 Python
Python学习——函数,2024年最新手持4个大厂offer的我
Python学习——函数,2024年最新手持4个大厂offer的我
|
3天前
|
数据采集 数据挖掘 关系型数据库
Excel计算函数(计算机二级)(1),2024年最新2024Python架构面试指南
Excel计算函数(计算机二级)(1),2024年最新2024Python架构面试指南
|
3天前
|
存储 Java Shell
【Python学习教程】Python函数和lambda表达式_6(1),2024蚂蚁金服面试题及答案
【Python学习教程】Python函数和lambda表达式_6(1),2024蚂蚁金服面试题及答案
|
3天前
|
Python
Python基础教程: math库常用函数(1),Python这些高端技术只有你还不知道
Python基础教程: math库常用函数(1),Python这些高端技术只有你还不知道
|
4天前
|
机器学习/深度学习 数据采集 自然语言处理
python函数参数的传递、带星号参数的传递,2024年大厂Python高级面试题分享
python函数参数的传递、带星号参数的传递,2024年大厂Python高级面试题分享
|
4天前
|
Python
Python 使用type()函数
【5月更文挑战第10天】
13 4
|
4天前
|
Python
Python使用isinstance()函数
【5月更文挑战第10天】Python使用isinstance()函数
9 2