python 使用zip()函数

本文详细介绍了Python内置函数zip的用法,包括如何将多个迭代器元素配对成元组,处理不同长度的迭代器,以及在并行迭代、列表构建、字典操作等方面的应用。通过实例展示了zip在数据处理中的灵活性和实用性。
摘要由CSDN通过智能技术生成

一、zip(*iterables)是内建函数 

      它将返回一个元组迭代器,其中 i-th 元组将包含传入的每个迭代器中的 i-th 元素。一旦最短的输入迭代用完,该迭代器将停止 。

    将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。 

    传入参数:元组、列表、字典等迭代器。

     如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

 二、使用zip()函数

 1、没有参数,则返回的是空列表

zz=zip()
print(zz,type(zz))
print(list(zz))

2、有一个参数,则返回的是每一个元组组成的列表。 

num = [11, 22, 33,44,55]
zz= zip(num)
print(list(zz))

 3、有多个参数,则返回的是对应的元组组成的列表。 

names = ['zhang', 'wang', 'li', 'yang']
ages = [18,20, 22, 19]
print(list(zip(names, ages)))

 4、如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同

zz =list(zip(range(3), 'ABCDEF'))
print(zz)

 5、可以并行迭代多个iterable,并使用循环输出信息

names = ['zhang', 'wang', 'li', 'yang']
ages = [18,20, 22, 19]

for name,age in zip(names,ages):
    print(name,age)

 并行迭代多个iterable,做加减乘除运算。

num1 = [10, 20, 30,5]
num2 = [5, 6, 5,8]
operators = ['+', '-', '/','*']
for n1,op,n2 in zip(num1,operators,num2):
    print(f'{n1}{op}{n2}={eval(str(n1)+op+str(n2))}')

 

 6、可以同时遍历多个字典的数据

done = {'name': 'Mike', 'last_name': 'Wei', 'job': 'Python'}
dtwo = {'name': 'Sanse', 'last_name': 'Doe', 'job': 'Manager'}
for (k1,v1),(k2,v2) in zip(done.items(),dtwo.items()):
    print(k1,v1)
    print(k2,v2)

 

7、将两个列表中的数据构建成列表再进行排序 

names = ['zhang', 'wang', 'li', 'yang']
ages = [18,20, 22, 19]
data = list(zip(names, ages))
print(data)
#根据字母升序排序
data.sort()
print(data)

8、可以使用 sorted() 和 zip() 一起使用来进行升序排序:

names = ['zhang', 'wang', 'li', 'yang']
ages = [18,20, 22, 19]
data = sorted(zip(names, ages))
print(data)

 9、将两个列表中的数据构建成字典

names = ['zhang', 'wang', 'li', 'yang']
ages = [18,20, 22, 19]
stu = dict(zip(names, ages))
print(stu)

  

10、利用 * 号操作符,可以将列表解压为元组。

names = ['zhang', 'wang', 'li', 'yang']
ages = [18,20, 22, 19]
# 转换为列表
print(list(zip(names,ages)))

# 解压
n,a=zip(*zip(names,ages))
print(n)
print(a)

 

 

 

 

Pythonzip函数是一个内置函数,用于将多个可迭代对象打包成一个元组序列的迭代器。这些可迭代对象可以是列表、元组、字符串、集合等。zip函数会按照最短的可迭代对象进行打包,生成的元组中每个元素由输入的可迭代对象的对应位置的元素组成。例如,如果有两个列表`a = [1, 2, 3]`和`b = ['a', 'b', 'c']`,使用zip函数可以将它们打包成一个新的列表`[(1, 'a'), (2, 'b'), (3, 'c')]`。 使用zip函数可以方便地进行多个可迭代对象的并行遍历。通过将多个可迭代对象打包成一个元组序列,我们可以同时访问每个可迭代对象的相应元素,这在处理数据的时候非常有用。例如,可以使用zip函数来计算两个列表中对应位置的元素之和,或者将两个列表中的元素一一对应起来进行处理。 需要注意的是,zip函数返回的是一个迭代器,而不是一个列表。如果需要得到一个列表,可以使用list()函数将迭代器转换为列表。 总而言之,Pythonzip函数是一个非常有用的函数,用于将多个可迭代对象打包成一个元组序列的迭代器,方便进行并行遍历和处理。<span class="em">1</span> #### 引用[.reference_title] - *1* [Python zip函数打包元素实例解析](https://download.csdn.net/download/weixin_38671819/12857277)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值