思路:首先将相同科目放在一起,然后对超过两课时的课长进行排序,没超过的直接把所有课时相加
写题思路:将科目与课长分成两个列表,将相同科目的时间放在一起,然后再进行计算
代码实现:
n=int(input())
l1=[]
l2=[]
c=0
for i in range(n):
a,b=input().split(" ")
if a not in l1:
l1.append(a)
l2.append([int(b)])
else:
l2[l1.index(a)].append(int(b))
for j in range(len(l1)):
if len(l2[j])>2:
l2[j].sort()
c+=l2[j][-1]
c+=l2[j][-2]
else:
c+=sum(l2[j])
print(c)
收获:这题两个列表的建立为我提供了新的建立列表的思路,l2.append([int(b)]),添加的列表形式的元素,使l2变成二维列表,使后面l2[l1.index(a)].append(int(b)) 可以实现
`