搜索列表中的项目并将其替换为其他值

2024-10-04 03:29:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在3D列表中搜索一个项目,如果它在其中:替换它

winner =["Player", 100]
def leaderboardsave(winner):
    fileCSV = open('scores.csv')
    dataCSV = csv.reader(fileCSV)
    playersScores = list(dataCSV)
    winnerName = winner[0]
    if winnerName in playersScores:
        #replace item in playerScores with winner
    else:
        playersScores.append(winner)
        print(playersScores)
leaderboardsave(winner)

若winnername已经是PlayerCores,我想用存储在winner中的分数替换他们的分数 我的CSV结构如下:

Owen, 20
George, 40
Lucas, 30
Jeremy, 60

Tags: csv项目in列表defopen分数player
1条回答
网友
1楼 · 发布于 2024-10-04 03:29:03

您可以在if条件中使用此选项:

playersScores[playersScores.index(winnerName)] = winner

这里playersScores.index(winnerName)将返回playersScores列表中winner的索引。然后你可以用这个索引来分配任务

您可以将逻辑条件更新为:

try:
    winner_index = playersScores.index(winnerName) 
    playersScores[winner_index] = winner
except ValueError:  # Will raise this exception if "winnerName" 
                    # is not found in the list.
    playersScores.append(winner)

编辑:

在上一次编辑中,由于您提到playersScores是一个元组列表,因此需要将.index调用更新为:

playersScores = [['Player', ' 20'], ['Player2', ' 40'], ['Player3', ' 30'], ['Player4', ' 60'], ['Player', 100]]

player_name_list = zip(*playersScores)[0]  # list with all elements at index `0` 
winner_index = player_name_list.index(winnerName) 

相关问题 更多 >