我有3个列表,如下所示:
names = ["paul", "saul", "steve", "chimpy"]
ages = [28, 59, 22, 5]
scores = [59, 85, 55, 60]
我需要将它们转换成这样的字典:
{'steve': [22, 55, 'fail'], 'saul': [59, 85, 'pass'], 'paul': [28, 59, 'fail'], 'chimpy': [5, 60, 'pass']}
“及格”和“不及格”是根据得分是否大于等于60而得出的。
我可以使用一系列for loops
来做到这一点,但我正在寻找更整洁/专业的方法。
谢谢。
答案 0 :(得分:1)
使用zip至少可以执行以下“压缩”实施:
res = dict()
for n,a,s in zip(names,ages,scores):
res[n] = [a,s,'fail' if s <60 else 'pass']
答案 1 :(得分:0)
您可以使用dictionary comprehension非常整齐地做到这一点:
D = {name: [score, age, 'fail' if score<60 else 'pass'] for name, score, age in zip(names, scores, ages)}