首页 > 解决方案 > 给出2个嵌套列表并计算最里面的元素

问题描述

如果我有 2 个列表,例如:

科目和学分:

[['Math',6],['English',3],['Drama',2]]

学生和分数:

[['Amy',,90,80],['Jack','60','30','50'],['Tom','80','','50']]

并想像这样计算它们:

对艾米来说,数学没有分数。英语90(3学分)和戏剧80(2学分)所以它会输出

[['Amy',,270,160],['Jack',360,90,100],['Tom'480,,100]]

编辑:

我自己解决了。我只需要使用类似的东西

a[i][j] = b[i][j] *c [i][1]

标签: python

解决方案


以下应该做到这一点:

credit = [['Math',6],['English',3],['Drama',2]]
scores = [['Amy',None,90,80],['Jack',60,30,50],['Tom',80,None,50]]
output = [
    [stud[0]] +
    [
        None if score is None else score * credit[idx][1]
        for idx, score in enumerate(stud[1:])
    ] for stud in scores
]

print(output)

# [['Amy', None, 270, 160], ['Jack', 360, 90, 100], ['Tom', 480, None, 100]]

也就是说,您可能应该更简单地实现这个,而不需要列表理解。


推荐阅读