实参高阶函数迭代器和生成器

本文详细介绍了Python中的实参高阶函数,包括map和reduce的使用,接着探讨了迭代器的概念、创建及获取元素的方法,最后阐述了生成器的特性和创建方式,以及如何控制生成器生成数据的个数和值。
摘要由CSDN通过智能技术生成
一.实参高阶函数
1.函数的本质

函数就是变量

Python中定义函数局势定义一个类型是function的变量,函数名就是变量名

2.map函数

map(函数,序列) ----讲序列中的元素通过指定的规则转换成一个新的序列中的元素

函数要求:
有且只有一个参数 ----- 指向后面的这个序列中的每个元素

有一个返回值----新序列中元素(用参数来代表原序列中的元素,描述出新序列中元素和原序列中元素的关系)

# 练习5:已经两个列表分别是学生姓名和年龄,根据创建一个保存多个学生信息的列表
# [{'name': '小明', 'age': 18}, {'name': '张三', 'age': 21}, {'name': '李四', 'age': 22}, {'name': '老王', 'age': 19}]
names = ['小明', '张三', '李四', '老王']
ages = [18, 21, 22, 19]
new_list = list(map(lambda name, age: {
   'name': name, 'age': age}, names, ages))
print(new_list)
# [{'name': '小明', 'age': 18}, {'name': '张三', 'age': 21}, {'name': '李四', 'age': 22}, {'name': '老王', 'age': 19}]
3.reduce函数

reduce(函数,序列,初始值)

函数的要求:有且只有两个参数----第一个参数指向序列中的初始值,第二个参数指向序列中的元素

# 练习3:将names中的元素合并  -> '小张李老'
names = ['小明', '张三', '李四', '老王']
result = reduce(lambda init, name: init + name[0], names, '')
print(result) # 小张李老

# 练习6:已知一个学生列表
students = [
    {
   'name': '小明', 'age': 18, 'math': 90, 'chinese': 85, 'English': 60}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

假发别带歪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值