函数的返回值
什么是返回值 - 返回就是从函数内容传递到函数外部的数据。
怎么确定一个函数的返回值。
return后面的值就是函数的返回值(执行函数体时如果遇到return,return后面的值就是函数的返回值)。
怎么在函数外部获取函数返回值。
获取函数调用表达式的值就是获取这个函数的返回值。
一个函数只有一个返回值。
函数调用表达式 - 调用函数的语句。
什么时候使用返回值:
如果实现函数的功能,产生了新的数据,就将新的数据作为函数的返回值返回。
常见实参高阶函数
max
max(序列) - 直接比较序列中元素的大小,求出最大值
max(序列,key = 函数)
#求nums中十位数最大的元素
nums = [9108, 23, 167, 90, 556, 149]
result = max(nums, key=lambda i: i // 10 % 10)
print(result)
#nums中各个位数之和最大的元素
nums = [102, 19, 48, 221, 52]
# 3,10,12,5,7 -> 48
result2 = max(nums, key=lambda i: i // 100 + ((i // 10) - i // 100 * 10) + i % 10)
print(result2)
def temp(i):
sum1 = 0
for x in str(i):
sum1 += int(x)
return sum1
result_2 = max(nums, key=temp)
print(result_2)
map
#案例1:将nums中所有的元素乘以10
nums = [82, 67, 89, 6617, 90, 23, 71]
result = map(lambda i: i * 10, nums)
print(list(result))
reduce
求所有学生的总分
students = [
{'name': '小明', 'age': 19, 'score': 89, 'gender': '男'},
{'name': '小红', 'age': 22, 'score': 99, 'gender': '女'},
{'name': '小胡', 'age': 28, 'score': 75, 'gender': '男'},
{'name': '小花', 'age': 25, 'score': 80, 'gender': '女'},
{'name': '李华', 'age': 17, 'score': 84, 'gender': '男'}
]
# 0 + 89 + 99 + 75 +... -> 0 + {'name': '小明', 'age': 19, 'score': 89, 'gender': '男'}['score'] + ...
result = reduce(lambda i, item: i + item['score'], students, 0)
print(result)