栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python list内置函数用法补充

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python list内置函数用法补充

filter函数用法

filter,顾名思义,就是一个过滤器。其作用是从列表(或其他序列类型)中筛选出满足条件的子列表,filter是python的内置函数,无须import即可直接使用。
使用filter 函数筛选list列表数据,代码比单纯使用 if for循环判断要更加整洁
fliter 支持 函数和lambda 表达式两种写法

#方法一 lambda 表达式
 a = [1,2,3,4,5,6,7,8]
b=filter(lambda x:x>5,a)
#方法二 函数
 a = [1,2,3,4,5,6,7,8]
 def  choice(in_param):
        return  in_param>5     
b=flist(ilter(choice,a))

耗时,理论上filter 比 for 循环要快,当然具体耗时和电脑配置,还有代码的书写有一定关系,具体耗时要看当时的电脑运行情况,包括内存运行情况,电脑配置,代码书写等因素,以下示例仅做参考

map 函数用法

map函数的原型是map(function, iterable, …),它的返回结果是一个列表。map()是Python内置的高阶函数,它接收一个函数function 和一个list,并通过把函数f依次作用在list的每个元素上,得到一个新的list并返回。
同样map 支持 函数和lambda 表达式两种写法

#方法一 lambda 表达式
a = [1,2,3,4,5,6,7]
result=list(map(lambda x: x*2,a))
#方法二 函数
def map_list_result(a):
    return a+3
result=list(map(lambda x: map_list_result(x),a))
reduce 函数用法

reduce函数原本在python2中也是个内置函数,不过在python3中被移到functools模块中
reduce 函数不仅支持list集合的运算,还支持tuple集合的运算,甚至支持dict的运算(只是key值得运算)

a = [1,2,3,4,5,6,7]
b=(1,2,3,4,5)
c={'a':[1,2,3],'b':[4,5,6]}
方法一 lambda 表达式
a_1 = reduce(lambda x,y:x+y,a)
#方法二 函数
def reduce_result(x,y):
     return x+y
a_2= reduce(lambda x,y:reduce_result(x,y),a)     
# 不仅支持 list,还支持tuple 
a_3= reduce(lambda x,y:x+y,b)
list交集、并集、补集的实现

Python list 交、并、补集的实现方式有两种,一种是通过python 的运算符实现,另一种是通过python set 集合的置函数来实现

使用 set集合运算符实现

a = [‘a’,‘b’,‘c’,'d,‘e’,‘f’]
b = [‘e’,‘f’,‘g’,‘h’,‘i’,‘u’]
list(set(a) & set(b)) # 使用 “&” 运算求a与b的交集,输出:[e,f]
list(set(a) | set(b)) # 使用 “|” 运算求a与b的并集,输出:[a,b,c,d,e,f,g,h,i,u]
list(set(b) - set(a)) # 使用 “-” 运算求a与b的差(补)集: 求b中有而a中没有的元素,输出:[g, h, i, u]
list(set(a) - set(b)) # 使用 “-” 运算求a与b的差(补)集: 求a中有而b中没有的元素,输出: [a, b, c,d]
list(set(a) ^ set(b)) # 使用 “^” 运算求a与b的对称差集,输出:[a,b,c,d,g,h,i,u]

使用set集合内置函数实现

a = [‘a’,‘b’,‘c’,'d,‘e’,‘f’]
b = [‘e’,‘f’,‘g’,‘h’,‘i’,‘u’]
print(list(set(a).intersection(set(b)))) # 使用 intersection 求a与b的交集,输出:[e,f]
print(list(set(a).union(b)) ) # 使用 union 求a与b的并集,输出:[a,b,c,d,e,f,g,h,i,u]
print(list(set(b).difference(set(a)))) # 使用 difference 求a与b的差(补)集:求b中有而a中没有的元素,输出:[g, h, i, u]
print(list(set(a).difference(set(b))) ) # 使用 difference 求a与b的差(补)集:求a中有而b中没有的元素,输出:[g, h, i, u]
print(list(set(a).symmetric_difference(b))) # 使用 symmetric_difference 求a与b的对称差集,输出:[a,b,c,d,g,h,i,u]

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/969187.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号