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

微信扫码关注公众号
