【发布时间】:2019-10-16 01:13:49
【问题描述】:
我有一个学生名单和一些笔记,我必须找到每个学生的平均成绩,并以如下方式显示(如果平均数大于或等于 6.0):
[学生姓名,平均数](按平均数降序排列)。
我这样做了,但问题是我有 2 个相等的平均值,我无法与学生的姓名对应,他在两种情况下都以平均 '6.0' 带走了我的第一个学生。
我的列表如下所示:
info = [['Frank Morgan', '7.89', '3.19', '6.90', '9.90'], ['Jesse Lawrence', '6', '6', '6', '6'], ['Mark Porter', '9.00', '7.87', '9.12', '10.00'], ['Philip Sanchez', '6', '6', '6', '6']]
average= [6.970000000000001, 6.0, 8.9975, 6.0]
我想创建以下内容:
result = [['Frank Morgan', 6.970000000000001], ['Jesse Lawrence', 6.0],['Mark Porter', 8.9975], ['Philip Sanchez', 6.0]]
我尝试了以下方式:
result = []
for i in average:
if i >= 6.0:
result.append([info[average.index(i)][0], i])
print result
但我得到了:
result = [['Frank Morgan', 6.970000000000001], ['Jesse Lawrence', 6.0],['Mark Porter', 8.9975], ['Jesse Lawrence', 6.0]]
“杰西·劳伦斯”而不是“菲利普·桑切斯”
请帮我为这个匹配问题找到另一个解决方案。
【问题讨论】:
标签: python python-2.7 indexing