gpt4 book ai didi

python - 列表按字母顺序而不是数字顺序排列

转载 作者:行者123 更新时间:2023-12-04 20:26:25 24 4
gpt4 key购买 nike

我已经累积了一个分数列表,其中包含在列表中获得该特定分数的人的用户名。

然后我使用以下代码按降序对分数进行排序。

winnerScore.sort()
winnerScore.reverse()

以下是打印列表 'winnerScore' 时的结果。
['j 78', 'j 36', 'i 90', 'i 58']

该函数根据用户名而不是实际代码对它们进行了排序。

负责对列表进行排序的函数如下:
global winnerScore
with open("diceRoll.txt","r") as x_file:
contents = x_file.readlines()

oneScore = contents[count-1]
oneScore = oneScore.split(" ")
print(oneScore)
n = oneScore[-2][-1] + " " + oneScore[-1]

winnerScore.append(n)

if len(oneScore) != 0:
winnerScore.sort()
winnerScore.reverse()

我已经从文本文件中读取了分数和用户名。

我可以更改哪些内容以确保根据用户名的实际分数对“winnerScore”列表进行排序?

最佳答案

默认情况下,字符串的排序顺序是按字母顺序排列的。

要自定义排序,您可以添加 key-function .

这是一个经过处理的示例:

>>> def extract_number(score):
"Convert the string 'j 78' to the number 78"
level, value = score.split()
return int(value)

>>> scores = ['j 78', 'j 36', 'i 90', 'i 58']
>>> scores.sort(key=extract_number)
>>> scores
['j 36', 'i 58', 'j 78', 'i 90']

希望这可以帮助 :-)

关于python - 列表按字母顺序而不是数字顺序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59957762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com