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

时间:2015-05-01 12:46:26

标签: python arrays sorting file-io tuples

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

在我的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和name(字符串作为我的变量)。

1 个答案:

答案 0 :(得分:1)

您无需进行太多改动:

{
  db: {
    connector: 'memory'
  }
} 

关键功能将使用您的第 highscores = sorted(highscores, key=lambda s: int(s.split()[0]), reverse=True) 行。然后它将拆分它,取第一部分,然后将其转换为整数。