Python:根据第一个元素对数组中的元组进行排序

标签 python arrays sorting file-io tuples

我有一个文件,其中每行(带有标题)都存储为 int 记录 (highscores)。

在我的Python项目中,我将记录读入一个数组,然后添加一条记录(只是一个int),对数组进行排序(添加了新记录),然后用新记录(和标题 - 保持不变)

这是我为此使用的相关代码:

highscores = []
with open("highscore.txt", "r") as f:
    f.readline() # Reads header
    for line in f:
        highscores.append(line.strip())

highscores.append(wins)
highscores = sorted(highscores, key=int, reverse=True)
# Print sorted highscores print to file
with open("highscore.txt", "w") as f:
  for val in highscores:
    print(val, file=f)

现在我有一个文件,其中每行都以 int/t string 形式存储记录(带有标题)。我在读取或排序带有元组的数组方面没有经验,并且不知道如何解决这个问题。谁能让我走上正确的道路或提供解决方案。

我想从我的文件中读取 int/t string 记录并将其放入 highscores 数组中。然后我想根据元组的第一个元素的 int 值对数组进行排序(假设我不采取其他方法)。然后用新的 highscore 记录覆盖该文件。

编辑:

我不应该在编写highscore.append(wins)时,wins是一个整数变量,我想附加wins和名称(字符串作为我的变量)。

最佳答案

您不必做太多改变:

 highscores = sorted(highscores, key=lambda s: int(s.split()[0]), reverse=True)

关键功能将占用您的线路s。然后它会分割它,取出第一部分,然后将其转换为整数。

关于Python:根据第一个元素对数组中的元组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29987102/

相关文章:

javascript - 使用 .findIndex 将满足条件的其他数组元素的所有索引保存到新数组中

c++:选择使用指针而不是索引进行排序

Java 对象 [] 排序

c++ - 在 C++ 中对多维数组进行排序

python - numpy var() 和 pandas var() 之间的区别

python - 找不到 Django 模块库

javascript - 根据多个属性和多个值过滤嵌套数组

python - Pandas 在枢轴后调整数据框大小?

python - 如何转换每行可变列大小的数据框?

java - 为什么在java中用一些数组(原始数据类型)替换对象(类)会显着减少运行时间?