【发布时间】:2019-05-28 11:13:18
【问题描述】:
此代码采用 有序(从最高分到最低分)的元组列表,并收集最高分、第二高分和第三高分者的姓名和分数。如果他们打成平手,则两个名字都将附加到同一个列表中。
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)
然而,
i[1]=SecondHighestScore
产量,
TypeError: 'tuple' object does not support item assignment
尽管如此,
print(repr(i[1]))
产量,
'18'
这显然不是元组。
【问题讨论】:
-
您能给我们提供运行此代码所需的变量吗?
-
i是这里的元组。与列表不同,您不能修改元组的元素;它们是不可变的。这似乎是一个类似的问题,我已经回答过。也许这会有所帮助:stackoverflow.com/a/53989234/8472377 -
正如前面的评论所暗示的,
i[1]不是元组,但i是。分配给i[1]是尝试更改元组i,这是不允许的。 -
你能添加一些预期的输出吗?
标签: python python-3.x list sorting tuples