python3 map,filter和列表推导式
Posted shaomine
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3 map,filter和列表推导式相关的知识,希望对你有一定的参考价值。
num_list = [11,2,-33,10,7,3,5,43]
1、filter 函数
获取num_list大于5的元素,并返回列表
用lambda表达式实现:
# 在python2 中 filter返回的是一个列表,可以用for遍历
# 在python3 中 filter返回的是一个filter对象,可以用for遍历,也可以用list转换为列表
list2 = list(filter(lambda x: x>5, num_list))
print(list2) #输出:[11, 10, 7, 43]
用列表推导式实现:
list2 = [x for x in num_list if x >5]
print(list2) #输出:[11, 10, 7, 43]
2、map 函数
给num_list的所有元素都乘以2,并返回列表
用lambda表达式实现:
# 在python2 中 map返回的是一个列表,可以用for遍历
# 在python3 中 map返回的是一个map对象,可以用for遍历,也可以用list转换为列表
list3 = list(map(lambda x: x*2, num_list))
print(list3) #输出:[22, 4, -66, 20, 14, 6, 10, 86]
用列表推导式实现:
list3 =[x*2 for x in num_list]
print(list3) #输出:[22, 4, -66, 20, 14, 6, 10, 86]
3、Reduce函数
引入:from functools import reduce
计算num_list所有元素之和
list4 = reduce(lambda x,y: x+y, num_list)
print(list4) #输出 :48
4、列表推导式
获取num_list列表中大于0的元素并执行平方操作
squared_list = [x**2 for x in num_list if x >0]
print(squared_list) #输出 :[121, 4, 100, 49, 9, 25, 1849]
5、list join操作
binfo = [‘lao‘,‘wang‘,‘python‘]
content = " ".join(binfo)
print(content) #输出 :lao wang python
content = ";".join(binfo)
print(content) #输出 :lao;wang;python
以上是关于python3 map,filter和列表推导式的主要内容,如果未能解决你的问题,请参考以下文章
python:reduce 可以翻译成 map、lambda 和 filter 之类的列表理解吗?