gpt4 book ai didi

python - 通过迭代给定数据返回字典列表

转载 作者:行者123 更新时间:2023-11-28 21:44:06 24 4
gpt4 key购买 nike

假设我有一个学生列表,并且有一个字典包含每个学生的一些数据,如下所示:

students= [{'student_name': 'name1', 
'regNO': '12',
},{'student_name': 'name2',
'regNO': '13',
},{'student_name': 'name3',
'regNO': '14',
}
]

因此,基于上述数据,我想返回另一个包含每个学生数据的字典列表,

我写了下面的代码:

res_dict = {}
res_list = []

for student in students:
res_dict['name']=student['student_name']
res_list.append(res_dict)

print(res_list)

我希望在输出中,对于每个学生,都会有一个字典,键是“姓名”,值是从“学生”列表中获取的学生姓名。我预计它会如下所示:

[{'name': 'name1'}, {'name': 'name2'}, {'name': 'name3'}]

但是输出结果是这样的:

[{'name': 'name3'}, {'name': 'name3'}, {'name': 'name3'}]

谁能帮我找出代码中的问题?

最佳答案

获得所需结果的更好方法是使用列表理解表达式作为:

[{'name': student['student_name']} for student in students]

您的代码的问题是您正在更新 dict 对象的同一引用中的值,并将同一对象再次附加到列表中。将您的代码更改为:

for student in students:
res_dict = {} # Create new `dict` object
res_dict['name'] = student['student_name']
res_list.append(res_dict)

或者,你可以这样做:

for student in students:
res_list.append({'name': student['student_name']})

关于python - 通过迭代给定数据返回字典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41189811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com