python-3.x - 如何将python中的文本文件排序为数字顺序?我的代码按字母顺序排序,为什么?(我是编码新手)
问题描述
这是我的代码,你能告诉我哪里出错了吗?我希望能够对我的列表进行数字排序,这样我就可以为我正在制作的游戏制作排行榜。这是一个测试,因此代码不会弄乱我的真实代码。
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]))
推荐阅读
- python - 将数据框中的每一行除以 Python 中的向量
- javascript - 如何只打开特定的模态窗口?
- python - 如何在 python 执行的 sql 语句中使用 hex(x ' ' )?
- javascript - 将代码移动到函数中时,React-leaflet LayersControl 引发错误
- vue.js - 选择单选按钮时,Vue组件不呈现条件内容
- c# - CodedUITest 前端交互使用另一个本地用户(模拟)
- javascript - 为文档生成自定义 dgeni 管道
- javascript - 统计动态行数并在html的输入框中显示
- c# - 需要精确到小数点后 3 位
- java - Keycloak admin rest api:未设置更新密码