python3学习日记——几个操作序列的高级函数

map

map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
注:Pyhton2.7 返回列表,Python3.x 返回迭代器对象

map(function, iterable, ...)

# 需求返回指定列表平方后的结果
list1 = [1,2,3,4,5]
list = list(map(lambda x:x**2,list1))
# 结果 [1, 4, 9, 16, 25]

# 两个列表的数相加
a,b = [1,2,3],[2,3,4]
ret = list(map(lambda x,y:x+y,a,b))
# 结果 [3, 5, 7]

filter

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False最后将返回 True 的元素放到新列表中。
注:Pyhton2.7 返回列表,Python3.x 返回迭代器对象

filter(function, iterable)

# 筛选出列表中的奇数
a = [1,2,3,4,5,6,7]
ret = filter(lambda x:x % 2 != 0,a)
list(ret)
# 结果 [1, 3, 5, 7]

# 筛选出及格的学生信息
score = [{
	'name': '张三',
	'mark': 90
},
{
	'name': '李四',
	'mark': 55
},{
	'name': '王五',
	'mark': 100
}]
wonderful = list(filter(lambda x:x['mark'] > 60,score))
# 结果
#[{'name': '张三', 'mark': 90}, {'name': '王五', 'mark': 100}]

reduce

reduce() 函数会对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
python3 要导包 from functools import reduce

reduce(function, iterable[, initializer])

# 实现阶乘效果
from functools import reduce
def n_list(n):
	return [x for x in range(1,n+1)]
a = reduce(lambda x,y:x*y,n_list(10)) # 10!
# 结果是3628800

sorted

sorted() 函数对所有可迭代的对象进行排序操作。

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

# 按学生成绩排序
score = [('张三',56),('李四',98),('王五',76),('赵六',100)]
ret = sorted(score,key=lambda x:x[1],reverse=True)
# 结果[('赵六', 100), ('李四', 98), ('王五', 76), ('张三', 56)]

你可能感兴趣的:(Python)