python-for循环中常用内置函数zip()

 

一、  介绍

zip():聚合打包函数。该函数返回一个以元组为元素的列表,其中第 i 个元组包含每个参数序列的第 i 个元素。例如zip(a, b, c),那么在将它转换成list之后,结果当然就是[(a[0], b[0], c[0]), (a[1], b[1], c[1]), ..., (a[n-1], b[n-1], c[n-1]]。

事实上,在 Python 3 中,为了节省空间,zip()返回的是一个tuple的迭代器,通过调用list()将tuple的迭代器强制转换成list。不过,Python 2中,它直接返回的就是一个列表了。

zip():聚合打包函数返回的列表长度被截断为最短的参数序列的长度。只有一个序列参数时,它返回一个1元组的列表。没有参数时,它返回一个空的列表。

 

二、  适用范围

可以与for循环搭配使用

三、  使用案例和用法

l1 = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']

l2 = [180,70,79,49,54,80,190]

t= zip(l1,l2)

print(t)

for key,value in t:

print(key,value)

 

1、  构建字典

例如:l1存储的是周一-周日,l2存储的是对应日期销量,那么通过zip函数可以将日期和销量对应起来。

l1 = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']

l2 = [180,70,79,49,54,80,190]

t= dict(zip(l1,l2))

print(t)

 

2、  对多个元素同时进行排序

l1 = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']

l2 = [180,70,79,49,54,80,190]

data = list(zip(l1, l2))

d= sorted(data,key=lambda x:-x[1], reverse=True)

print(d)

 

l1 = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']

l2 = [180,70,79,49,54,80,190]

data = list(zip(l1, l2))

d= sorted(data,key=lambda x:(x[0],-x[1]))

print(d)

 

3、  将数据成对进行计算

假设你们公司2023年前2季度的营收和成本如下,需要计算各个季度毛利。

 

Q1

Q2

Q3

GMV

65,070

81,085

88,870

各类成本

26,873

35,780

32,580

利润 = GMV - 各类成本,计算每个季度利润,代码如下:

GMV = [65070, 81085, 88870]

COST = [26873, 35780, 32580]

for sale, cost in zip(GMV,COST):

pft = sale - cost

print('各个季度毛利为:%d' %pft)

 

 

补充下sort语法结构:

list.sort(cmp=None, key=None, reverse=False)

cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。

key -- 主要是用来进行比较的元素

reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。

sorted()方法

sorted(iterable, cmp=None, key=None, reverse=False)

 

sort()和sorted()区别

sort 是应用在 list 上的方法,而sorted 可以对所有可迭代的对象进行排序操作,是python内置的全局方法;

sort是对原有列表进行操作,而sorted返回的是一个新的可迭代对象,不会改变原来的对象;

sort使用方法为list.sort(), 而sorted的使用方法为sorted(list)

————————————————

版权声明:本文为CSDN博主「IT之一小佬」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_44799217/article/details/128107417

链接:python中sort()和sorted()排序函数用法详解_python sorted 使用函数排序_IT之一小佬的博客-CSDN博客

 

 

链接:Python zip()用法,看这一篇就够了_PaulZhn的博客-CSDN博客

 

关注公众号「水沐教育科技」,在手机上阅读所有教程,随时随地都能学习。内含一款搜索神器,免费下载全网书籍和视频。

公众号二维码
微信扫码关注公众号

微信交流群 关注微信公众号,加入官方交流群。内含一款搜索神器,免费下载全网书籍和视频。