Python编写get_data提取字典列表属性仅返回首个值问题求解
问题排查与修正方案
现有代码的错误点
- 提前return终止执行:函数在第一次进入循环时就执行return语句,直接结束函数运行,不会遍历后续的鸭子数据,所以只能返回第一个字典的第一个属性值。
- 多余的嵌套循环:不需要额外遍历字典的所有key,函数第二个参数
key就是你要提取的属性名,直接取字典对应key的值即可。 - 调用参数错误:调用
get_data时第二个参数传了0,不符合需求,应该传你要提取的属性名,比如'name'、'weight'等字符串。
修正后的代码
get_data函数实现
def get_data(data, key): result = [] # 遍历列表里的每个鸭子字典 for duck_dict in data: # 提取对应key的值加入结果列表 result.append(duck_dict[key]) return result
调用示例
# 提取duck_list_2里所有鸭子的name属性 print(get_data(duck_list_2, 'name')) # 输出:['Mysha', 'Ruben', 'Tara', 'Shaurya']
补充:main函数的扩展实现参考
你可以根据实际业务需求在main函数里调用get_data处理两组鸭子数据,示例如下:
def main(duck_list_1, duck_list_2): # 示例:提取两组鸭子的体重数据返回 weight_1 = get_data(duck_list_1, 'weight') weight_2 = get_data(duck_list_2, 'weight') return weight_1, weight_2
内容的提问来源于stack exchange,提问作者Sasha B3llow
相关产品推荐
相关产品推荐

