此代码采用一个有序的元组列表(最高分数到最低分数)并收集最高、第二高和第三高得分者的姓名和分数。如果他们打成平手,这两个名字都会加到同一个名单上。在
myresults=[('Raven', '18'), ('Cobra', '8'), ('Lion', '6'), ('Otter', '2')]
FirstScore=myresults[0][1]
SecondHighestScore=0
ThirdHighestScore=0
for i in myresults:
if i[1]==FirstScore:
FirstPlacePatrols.append(i[0])
for i in myresults:
print(i[1])
print(repr(i[1]))
if int(i[1])<int(FirstScore):
if int(i[1])>=SecondHighestScore:
print(i[1])
i[1]=SecondHighestScore
SecondPlacePatrols.append(i[0])
for i in myresults:
if int(i[1])<SecondHighestScore:
if int(i[1])>=ThirdHighestScore:
i[0]=ThirdHighestScore
ThirdPlacePatrols.append(i[0])
print(FirstPlacePatrols)
print(FirstScore)
print(SecondPlacePatrols)
print(SecondHighestScore)
print(ThirdPlacePatrols)
print(ThirdHighestScore)
但是
^{pr2}$收益率
TypeError: 'tuple' object does not support item assignment
尽管如此
print(repr(i[1]))
屈服
'18'
显然不是元组。在
您不能更改tuple()s-它们是不可变的。你可以创造一个新的。或者,您可以使用
itertools.groupby
将元组组合在一起并执行一些选择性输出:输出:
^{pr2}$第二种解决方法是使用
collections.defaultdict
:多库语:
我的解决方案是:
输出:
^{pr2}$相关问题 更多 >
编程相关推荐