扩展函数练习题
求两数平方和
题目描述
编写一个 lambda 函数,计算两个数的平方和。
输出示例
输入:3, 4
输出:25
实现代码
# lambda 函数计算平方和
square_sum = lambda x, y: x**2 + y**2# 测试
result = square_sum(3, 4)
print(f"3和4的平方和: {result}")元组排序
题目描述
给定列表
tuples = [(2, 5), (1, 3), (3, 1), (4, 2)],按元组中第二个元素升序排序。
输出示例
[(3, 1), (4, 2), (1, 3), (2, 5)]
实现代码
tuples = [(2, 5), (1, 3), (3, 1), (4, 2)]
tuples.sort(key=lambda t: t[1]) # 按元组索引1的元素升序
print(tuples) # 输出:[(3, 1), (4, 2), (1, 3), (2, 5)]筛选偶数
题目描述
用
filter()和lambda筛选列表[1, 2, 3, 4, 5, 6]中的偶数。
输出示例
[2, 4, 6]
实现代码
nums = [1, 2, 3, 4, 5, 6]
even_nums = list(filter(lambda x: x % 2 == 0, nums))
print(even_nums) # 输出:[2, 4, 6]筛选含有字母 "a" 的字符串
题目描述
筛选列表
["apple", "banana", "cherry", "date"]中包含字母 "a" 的字符串(不区分大小写)。
输出示例
["apple", "banana", "date"]
实现代码
words = ["apple", "banana", "cherry", "date"]
has_a = list(filter(lambda s: 'a' in s.lower(), words))
print(has_a) # 输出:['apple', 'banana', 'date']筛选学生
题目描述
students=[(‘张莉’,78),(‘王明’,87),(‘刘超’,88),(‘王燕’,93),(‘刘海’,68),(‘邓超’,97)]
用filter() 函数筛选出成绩90分及以上的列表中的学生。
输出示例
[('王燕', 93), ('邓超', 97)]
实现代码
score=[('张莉',78),('王明',87),('刘超',88),('王燕',93),('刘海',68),('邓超',97)]
score_90=list(filter(lambda element:element[1]>=90 , score ))
print(score_90)筛选索引为偶数的元素
题目描述
给定列表
[10, 20, 30, 40, 50, 60],使用enumerate()筛选出索引为偶数(0、2、4...)的元素,组成新列表。
输出示例
[10, 30, 50]
实现代码
nums = [10, 20, 30, 40, 50, 60]
even_index_elements = [value for index, value in enumerate(nums) if index % 2 == 0]
print(even_index_elements) # 输出:[10, 30, 50]构建索引 - 值字典
题目描述
使用
enumerate()将列表["red", "green", "blue"]转换为字典,键为索引(从 1 开始),值为列表元素。
输出示例
{1: 'red', 2: 'green', 3: 'blue'}
实现代码
colors = ["red", "green", "blue"]
index_dict = {index: value for index, value in enumerate(colors, start=1)}
print(index_dict) # 输出:{1: 'red', 2: 'green', 3: 'blue'}多个列表打包
题目描述
用
zip()打包三个列表a = [1, 2, 3]、b = [4, 5, 6]、c = [7, 8, 9],生成(a元素, b元素, c元素)的元组列表。
输出示例
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
实现代码
a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]
packed = list(zip(a, b, c))
print(packed) # 输出:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]合并两个列表为字典
题目描述
用
zip()将列表keys = ["name", "age", "gender"]和values = ["Alice", 20, "female"]合并为字典。
输出示例
{'name': 'Alice', 'age': 20, 'gender': 'female'}
实现代码
keys = ["name", "age", "gender"]
values = ["Alice", 20, "female"]
person = dict(zip(keys, values))
print(person) # 输出:{'name': 'Alice', 'age': 20, 'gender': 'female'}计算对应元素之和
题目描述
用
zip()计算两个列表a = [10, 20, 30]和b = [5, 15, 25]中对应元素的和,生成新列表。
输出示例
[15, 35, 55]
实现代码
a = [10, 20, 30]
b = [5, 15, 25]
sums = [x + y for x, y in zip(a, b)]
print(sums) # 输出:[15, 35, 55]字符串转大写
题目描述
用
map()将列表["apple", "banana", "cherry"]中的字符串全部转为大写。
输出示例
['APPLE', 'BANANA', 'CHERRY']
实现代码
words = ["apple", "banana", "cherry"]
upper_words = list(map(lambda s: s.upper(), words))
print(upper_words) # 输出:['APPLE', 'BANANA', 'CHERRY']两数相加
题目描述
用
map()处理两个列表[1, 2, 3]和[4, 5, 6],返回对应元素的和。
输出示例
[5, 7, 9]
实现代码
a = [1, 2, 3]
b = [4, 5, 6]
sums = list(map(lambda x, y: x + y, a, b)) # 函数接收两个参数
print(sums) # 输出:[5, 7, 9]按字符串长度排序
题目描述
对列表
["apple", "cat", "banana", "dog"]按字符串长度升序排序。
输出示例
["cat", "dog", "apple", "banana"]
实现代码
words = ["apple", "cat", "banana", "dog"]
# key=lambda s: len(s) 表示按字符串长度排序
sorted_words = sorted(words, key=lambda s: len(s))
print(sorted_words) # 输出:['cat', 'dog', 'apple', 'banana']字典排序
题目描述
对列表
[ {"name": "Bob", "age": 19}, {"name": "Alice", "age": 17}, {"name": "Charlie", "age": 18} ]按age升序排序。
输出示例
[{'name': 'Alice', 'age': 17}, {'name': 'Charlie', 'age': 18}, {'name': 'Bob', 'age': 19}]
实现代码
students = [{"name": "Bob", "age": 19},{"name": "Alice", "age": 17},{"name": "Charlie", "age": 18}
]
# key=lambda d: d["age"] 表示按字典"age"键的值排序
sorted_students = sorted(students, key=lambda d: d["age"])
print(sorted_students)