【发布时间】:2018-05-07 04:10:11
【问题描述】:
只是想知道是否有人能发现我做错了什么,我的印象是下面的代码会找到最大数字和最大数字的索引。这是我在下面使用的代码。
def select_winner():
print('The game scores are:')
for i in range (4):
print(Players[i], ' = ', score[i])
winner = max(enumerate(score))
print('----------------')
print()
print('The Winner is ', Players[winner[0]], ' with ', str(winner[1]),'
points!')
print(winner)
输出:
#The game scores are:
#Jarrah = 86
#Reza = 121
#Marge = 72
#Homer = 91
#----------------
#The Winner is Homer with 91 points!
#(3, 91)
max 应该选择最大值吧?如果我没有记错,枚举应该选择值及其索引,当我将它们一起打印时,我应该得到最高值及其在列表中的位置。好吧,至少这就是我想要做的。被选为最高分数的索引应该与获得该分数的玩家共享相同的索引,以及他们的列出方式。
任何帮助都会很棒 谢谢
更新:
def select_winner():
print('The game scores are:')
for i in range (4):
print(Players[i], ' = ', score[i])
winner =(max(score))
print('----------------')
print()
print('The Winner is '+ Players[winner[0]]+ ' with '+ str(winner[1])+ '
points!')
print(winner)
输出:
#The game scores are:
#Jarrah = 91
#Baldwin = 73
#Kepa = 112
#Long = 106
#----------------
#in select_winner
#print('The Winner is '+ Players[winner[0]]+ ' with '+ str(winner[1])+ '
#points!')
#TypeError: 'int' object is not subscriptable
任何人都知道解决方法,并且 max() 本身是否会提取最大数字所在位置的索引?如果没有,有没有办法做到这一点?
已修复!:
def select_winner():
k=0
print('The game scores are:')
for i in range (4):
print(Players[i], ' = ', score[i])
winner2=(score.index(max(score)))
winner=str(max(score))
print('----------------')
print()
print('The Winner is '+ Players[winner2]+ ' with '+ winner + ' points!')
【问题讨论】:
-
提示:试试 max(score)
-
试过了,但我也需要列表中最大数的索引
-
winner = max(enumerate(score), key= lambda x: x[1])
标签: python