如何用Python编写接收字典列表并返回字符串列表的函数
实现extract_names函数的两种方法
一、修正你的循环实现
你的现有代码仅打印了字典的值列表,未处理目标字符串格式,也没有收集结果返回。以下是修正后的代码:
def extract_names(name_list): full_names = [] for person in name_list: # 提取名和姓,将姓的首字母大写 first_name = person['first'] last_name = person['last'].capitalize() full_names.append(f"{first_name} {last_name}") return full_names # 测试示例 name = [{"first":"john","last":"doe"},{"first":"jane","last":"doe"}] print(extract_names(name)) # 输出: ['john Doe', 'jane Doe']
二、用map函数实现
map函数可将处理逻辑批量应用到列表的每个元素上,配合lambda表达式能进一步简化代码:
方式1:单独定义处理函数
def format_full_name(person): return f"{person['first']} {person['last'].capitalize()}" def extract_names(name_list): # 将map对象转为列表返回 return list(map(format_full_name, name_list)) # 测试示例 name = [{"first":"john","last":"doe"},{"first":"jane","last":"doe"}] print(extract_names(name)) # 输出: ['john Doe', 'jane Doe']
方式2:使用lambda简化
def extract_names(name_list): return list(map(lambda p: f"{p['first']} {p['last'].capitalize()}", name_list)) # 测试示例 name = [{"first":"john","last":"doe"},{"first":"jane","last":"doe"}] print(extract_names(name)) # 输出: ['john Doe', 'jane Doe']
内容的提问来源于stack exchange,提问作者Karizkhan
相关产品推荐
相关产品推荐

