#python
#питон
Вопрос:
Вот мой код с комментариями. Я пытаюсь выяснить, как правильно сопоставить имя победившего игрока в гольф с их счетом, и отобразить имя игрока в выводе вместе с выигрышным счетом.
def main(): #define the main function golferNames = [] #create empty list for golferNames golferScores = [] #create empty list for golferScores golferCount = inputInfo(golferNames,golferScores) #call inputInfo function; pass lists winner = displayReport(golferNames,golferScores) #call displayReport function; pass lists #print winner's results print('Winner is ',winner,'with score ',min(golferScores),'out of ',golferCount,'golfers.') def inputInfo(golferNames,golferScores): #define inputInfo function golferCount = 0 #assign starting value to golferCount another = input('Are there any golfer cards to input? (y/n)')#establish starting loop while another != 'n': #establish while loop condition golferName = input('Enter name of golfer: ') golferNames.append(golferName) golferScore = int(input("Enter golfer's score: ")) golferScores.append(golferScore) golferCount = 1 another = input('Do you have more golfers to enter? (y/n)') return golferCount def displayReport(golferNames,golferScores): #define displayReport function import datetime #import the datetime module curDateTime = datetime.datetime.now() #assign datetime variable #function goes the the golferNames list and scores lists and reads all golfers #and their information one line at a time in a loop: index = 0 for golfer in golferNames: #maintain a total of the scores and keep track of lowest score so far AND #display each golfer score as a row in a table to the screen using print/format print('SPRINGFORK AMATUER GOLF CLUB') print('TOURNAMENT DATE: ', curDateTime) print('GOLFER NAME', 'SCORE') print('--------------------', '-----') for golfer in golferNames: print(golferNames[index],golferScores[index]) index = 1 main() #call the main function
Комментарии:
1.
winningScore, winningName = *sorted(list(zip(golferScores, golferNames)), key=lambda x: x[0])[0]
2. @LarrytheLlama ваша строка кода возвращает минимальный балл вместо выигрыша. Чинить:
winningScore, winningName = *sorted(list(zip(golferScores, golferNames)), key=lambda x: x[0])[-1]
3. @YoavSheetrit упс — я действительно думал об этом, я просто забыл. Моя вина.