Python 内置函数 -- zip(), sorted(), filter()和map()

内置函数1. zip()  打包(木桶效应)描述: zip() 函数用于将可迭代的对象作为参数, 将对象中对应的元素打包成一个个元组, 然后返回由这些元组组成的列表语法: zip([iterable, ...])参数: iterable -- 一个或多个迭代器返回值: 返回可迭代对象
# 实例:
lst1 = ["中国", "美国", "俄罗斯", "日本"]
lst2 = ["北京", "华盛顿", "莫斯科"]
lst3 = ["烤鸭", "炸鸡", "黄油+面包", "寿司"]
lst = zip(lst1, lst2, lst3) # 合并列表, 返回可迭代对象, 水桶效应
print(lst)
print(list(lst))
print("__iter__" in dir(lst))
输出结果:<zip object at 0x0000005E0A4DCEC8>[(‘中国‘, ‘北京‘, ‘烤鸭‘), (‘美国‘, ‘华盛顿‘, ‘炸鸡‘), (‘俄罗斯‘, ‘莫斯科‘, ‘黄油+面包‘)]True

需要注意的是:(1)zip()函数具有水桶效应(2)zip()函数返回的是一个迭代器, 直接打印zip()函数的结果是一个内存地址

2. sorted()  排序执行流程: 把可迭代对象iterable中的每一个元素拿出来, 放到func中运行, 返回一个数字, 根据数字进行排序描述: sorted() 函数对所有可迭代的对象进行排序操作语法: sorted(iterable, key=func, reverse=True/False)参数说明: iterable -- 可迭代对象         func -- 排序规则         reverse=True表示降序排列, reverse=False表示升序排列返回值: 返回排序后的列表

实例1:
lst = ["王乃卉", "刘能", "赵四", "王大拿", "范伟", "沈腾"]
lst1 = sorted(lst, key=lambda name: len(name) % 3)
print(lst1)
输出结果:[‘王乃卉‘, ‘王大拿‘, ‘刘能‘, ‘赵四‘, ‘范伟‘, ‘沈腾‘]

实例2:按照年龄对学?信息进行排序
lst = [
    {"id": 1, "name": ‘alex‘, "age": 18},
    {"id": 2, "name": ‘wusir‘, "age": 16},
    {"id": 3, "name": ‘taibai‘, "age": 17},
]

l2 = sorted(lst, key=func)
print(l2)
l3 = sorted(lst, key=lambda dic: dic[‘age‘])
l4 = sorted(lst, key=lambda dic: len(dic[‘name‘]))
l5 = sorted(lst, key=lambda dic: ascii(dic[‘name‘][0]))
print(l5)
sorted()函数最大的优点是可以按照自己的规则(自己定义的函数)来排序

3. filter()  筛选执行流程: 把可迭代对象中的每一个元素拿出来, 放到func中运行, 返回True或False, 根据返回的True和False来决定这个元素是否保留描述: filter() 函数用于过滤序列, 过滤掉不符合条件的元素, 返回由符合条件的元素组成的迭代器语法: filter(function, iterable)参数: function -- 判断函数     iterable -- 可迭代对象返回值: 返回迭代器注意: filter()的作用是筛选,所以function的功能是判断

实例:(本题会用到lambda匿名函数, 如果不了解请点击这里)
lst = [23, 28, 15, 27, 24, 22]
f = filter(lambda age: age > 18 and age % 2 == 0, lst)
print(list(f))      # 要把返回的迭代器转换成列表才能打印出来

4. map()  映射执行流程: 把可迭代对象中的每一个元素拿出来, 放到func中运行, 返回数据就是结果描述: map()会根据提供的函数对指定序列做映射语法: map(function, iterable, ...)参数: function -- 函数     iterable -- 一个或多个序列返回值: 返回迭代器注意: map()的作用是映射,所以function的功能是作为对应法则输出目标值

实例1:
lst = [1,5,9,3]
m = map(lambda x: x**2, lst)
print(list(m))
输出结果:[1, 25, 81, 9]

实例2:计算两个列表相同位置的数据的和
lst1 = [1, 2, 3, 4, 5]
lst2 = [2, 4, 6, 8, 10]
print(list(map(lambda x, y: x + y , lst1, lst2)))
输出结果:[3, 6, 9, 12, 15]

原文地址:https://www.cnblogs.com/haitaoli/p/9692762.html

时间: 2024-10-09 17:01:07

Python 内置函数 -- zip(), sorted(), filter()和map()的相关文章

python 内置函数zip,map,三元,lambda表达式

#内置函数zip(),将多个可迭代对象(集合等)按照顺序进行组合成tuple元祖,放在zip 对象进行存储,: #当参数为空时候,返回空 #如果 zip() 函数压缩的两个列表长度不相等,那么 zip() 函数将以长度更短的列表为准; list_t1= [1,2,3] list_t2 =['apple','orange','banana'] list_t3 = [50,60,70,80] list_t4 = (500,600,700,800) list_z1 = zip(list_t1,list

Python内置函数(59)——sorted

英文文档: sorted(iterable[, key][, reverse]) Return a new sorted list from the items in iterable. Has two optional arguments which must be specified as keyword arguments. key specifies a function of one argument that is used to extract a comparison key f

Python基础篇【第2篇】: Python内置函数--map/reduce/filter/sorted

Python内置函数 lambda lambda表达式相当于函数体为单个return语句的普通函数的匿名函数.请注意,lambda语法并没有使用return关键字.开发者可以在任何可以使用函数引用的位置使用lambda表达式.在开发者想要使用一个简单函数作为参数或者返回值时,使用lambda表达式是很方便的.总结:处理简单逻辑,自动返回结果 语法格式: lambda parameters: expression 就相当于 def fun(args) return expression 并且lam

Python经常使用内置函数介绍【filter,map,reduce,apply,zip】

Python是一门非常简洁,非常优雅的语言,其非常多内置函数结合起来使用,能够使用非常少的代码来实现非常多复杂的功能,假设相同的功能要让C/C++/Java来实现的话,可能会头大,事实上Python是将复杂的数据结构隐藏在内置函数中,用C语言来实现,所以仅仅要写出自己的业务逻辑Python会自己主动得出你想要的结果.这方面的内置函数主要有,filter,map,reduce,apply,结合匿名函数,列表解析一起使用,功能更加强大.使用内置函数最显而易见的优点是: 1. 速度快,使用内置函数,比

Python之路Python内置函数、zip()、max()、min()

Python之路Python内置函数.zip().max().min() 一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算,如果全部都是true,就返回true, 但是如果是空字符串.空列表也返回true 例子 print(all([1,2,'1',''])) 输出结果 False 例子2 print(all('')) 输出结果 True any() 把序列中每一个元素做布尔运算,如果有一个为true就返回true, 但

Python 内置函数sorted()有哪些高级用法?

本文和大家分享的主要是python内置函数sorted()的相关内容,一起来看看吧,希望对大家学习python http://www.maiziedu.com/land/python/有所帮助. 1.对于 Python 内置函数 sorted() ,先拿来跟list(列表)中的成员函数 list.sort() 进行下对比.在本质上,list的排序和内建函数sorted的排序是差不多的,连参数都基本上是一样的. 2.主要的区别在于, list.sort() 是对已经存在的列表进行操作,进而可以改变

[python基础知识]python内置函数map/reduce/filter

python内置函数map/reduce/filter 这三个函数用的顺手了,很cool. filter()函数:filter函数相当于过滤,调用一个bool_func(只返回bool类型数据的方法)来迭代遍历每个序列中的元素. 返回bool_func结果为true的元素的序列(注意弄清楚序列是什么意思)http://blog.csdn.net/bolike/article/details/19997465序列参考</a> 如果filter参数值为None,list参数中所有为假的元 素都将被

Python内置函数之filter map reduce

Python内置函数之filter map reduce 2013-06-04 Posted by yeho Python内置了一些非常有趣.有用的函数,如:filter.map.reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是Python列表方法的三架马车.1. filter函数的功能相当于过滤器.调用一个布尔函数bool_func来迭代遍历每个seq中的元素:返回一个使bool_seq返回值为true的元素的序列. >>>

Python 内置函数sorted()在高级用法

对于Python内置函数sorted(),先拿来跟list(列表)中的成员函数list.sort()进行下对比.在本质上,list的排序和内建函数sorted的排序是差不多的,连参数都基本上是一样的.主要的区别在于,list.sort()是对已经存在的列表进行操作,进而可以改变进行操作的列表.而内建函数sorted返回的是一个新的list,而不是在原来的基础上进行的操作. 再来,让我们用Python自带的帮助函数help()看看对于sorted()是怎么定义的: >>>help(sort