您可以使用单循环:
lst = ['student1', 10, 20, 40, 'student2', 20, 20, 40, 'student3', 20, 30, 40, 'student4', 20, 10, 30]
result = []
for i in range(0, len(lst), 4):
result.extend((lst[i], sum(lst[i+1:i+4])))
输出:
['student1', 70, 'student2', 80, 'student3', 90, 'student4', 60]
如果每个学生的分数不同,例如:
lst = ['student1', 10, 20, 'student2', 10, 20, 30, 'student3', 10, 20, 30, 40, 'student4', 10, 20, 30, 40, 50]
然后:
s = 0
result = [lst[0]]
for i in lst[1:]:
try:
s += int(i)
except ValueError:
result.extend((s, i))
s = 0
result.append(s)
输出:
['student1', 30, 'student2', 60, 'student3', 100, 'student4', 150]