Python实现get_data函数从字典列表提取指定Key对应属性值
Python get_data函数问题修复方案
现有代码问题梳理
- 循环变量和参数
key重名,覆盖了传入的属性名参数 - 循环体内直接执行
return,遍历第一个元素就退出函数,无法收集全部结果 - 调用函数时传入的第二个参数是错误的空列表,没有传入实际要提取的属性名字符串
- 冗余的
main函数无实际作用,可以删除
修复后的完整代码
list_1 = [ {'name': 'Jerome', 'weight': 3.38, 'wingspan': 49.96, 'length': 19.75}, {'name': 'Ibraheem', 'weight': 3.08, 'wingspan': 50.59, 'length': 20.6}, {'name': 'Tiana', 'weight': 0.81, 'wingspan': 47.86, 'length': 17.94}, {'name': 'Lucas', 'weight': 3.33, 'wingspan': 48.27, 'length': 18.77}, {'name': 'Rickie', 'weight': 4.4, 'wingspan': 51.0, 'length': 20.34} ] def get_data(data, key): # 初始化结果列表 result = [] # 遍历字典列表中的每个字典,循环变量不与参数key重名 for item in data: # 提取对应属性值加入结果列表 result.append(item[key]) return result # 测试示例1 print(get_data(list_1, "name")) # 输出:['Jerome', 'Ibraheem', 'Tiana', 'Lucas', 'Rickie'] # 测试示例2 print(get_data(list_1, "weight")) # 输出:[3.38, 3.08, 0.81, 3.33, 4.4]
简化写法(可选)
可以直接用列表推导式实现相同功能,代码更简洁:
def get_data(data, key): return [item[key] for item in data]
内容的提问来源于stack exchange,提问作者Polina99
相关产品推荐
相关产品推荐

