Python 3.x 如何将python中的文本文件按数字顺序排序?我的代码按字母顺序排序,为什么?(我不熟悉编码)
这是我的密码,你能告诉我哪里出错了吗?我希望能够对我的列表进行数字排序,以便为我正在制作的游戏制作一个排行榜。这是一个测试,这样代码就不会弄乱我真正的代码Python 3.x 如何将python中的文本文件按数字顺序排序?我的代码按字母顺序排序,为什么?(我不熟悉编码),python-3.x,Python 3.x,这是我的密码,你能告诉我哪里出错了吗?我希望能够对我的列表进行数字排序,以便为我正在制作的游戏制作一个排行榜。这是一个测试,这样代码就不会弄乱我真正的代码 text_file = open("write.txt","a") text_file.truncate(0) def write(): global text_file text_file.write("Sam has, 7") text_file.wr
text_file = open("write.txt","a")
text_file.truncate(0)
def write():
global text_file
text_file.write("Sam has, 7")
text_file.write("\n")
text_file.write("Tina has, 32")
text_file.write("\n")
text_file.write("Joshua has, 105")
text_file.write("\n")
text_file.write("Kathryn has, 8")
text_file.write("\n")
text_file.close()
write()
with open("write.txt", 'r') as file:
list2 = []
for line in file:
list2.append(line[0:-1].split(","))
print(list2)
print("")
sorted_lines = sorted(list2, key = lambda x : x[-1] )
print(sorted_lines)
我的代码按字母顺序排序,为什么?”
您从未将任何内容转换为整数,因此list2
是包含字符串的列表列表
例如,您可以执行以下操作:
sorted(list2, key = lambda x: int(x[-1]))
跑这个
text_file = open("write.txt","a")
text_file.truncate(0)
def write():
global text_file
text_file.write("Sam has, 7")
text_file.write("\n")
text_file.write("Tina has, 32")
text_file.write("\n")
text_file.write("Joshua has, 105")
text_file.write("\n")
text_file.write("Kathryn has, 8")
text_file.write("\n")
text_file.close()
write()
with open("write.txt", 'r') as file:
list2 = []
leaderBoard = []
for line in file:
if line.lower().find("has, "):
numStart = line.lower().split("has, ")
num = numStart[1].replace("\n","")
leaderBoard.append([[int(num), line]])
leaderBoard.sort(key=lambda x: x[0])
print(leaderBoard)
输出为:
[[[7, 'Sam has, 7\n']], [[8, 'Kathryn has, 8\n']], [[32, 'Tina has, 32\n']], [[105, 'Joshua has, 105\n']]]
谢谢你,它现在似乎起作用了(我怎么会这么笨)