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']]]

谢谢你,它现在似乎起作用了(我怎么会这么笨)