首页 > 解决方案 > 如何在文本文件的排序二维列表中打印 3 种不同类型的值?

问题描述

我有一个文本文件,上面写着一个人的名字,num。俯卧撑和数字。引体向上。这是文本文件。 在此处输入图像描述

我需要按学生可以分别做的俯卧撑和引体向上的数量对学生进行排序。例如,杰克可以做最多的俯卧撑和引体向上,所以他在这两个类别中都名列前茅。

为了解决这个问题,我认为我应该制作一个 2D 列表,但是我不确定如何排序以按排序方式附加值。这是我到目前为止编写的代码。

opener = open("gymclub.txt", "r")
reader = opener.readline()
listObjects = []
listNames = []
listPressups = []
listPullups = []
while reader!="":
    splitting=reader.split(",")
    name = splitting[0]
    press_ups = splitting[1]
    pull_ups = splitting[2]
    reader = opener.readline()
    print(name)
    print(press_ups)
    print(pull_ups)
    listNames.append(name)
    listPressups.append(press_ups)
    listPullups.append(pull_ups)
    listObjects.append(name)
    listObjects.append(press_ups)
    listObjects.append(pull_ups)
print(listObjects)
splitting2 = str(listObjects).split("\n")

# print(splitting[1])
# print(splitting[2])

opener.close()

我只想知道一种可以帮助我解决这个问题的方法。

标签: pythonpython-3.x

解决方案


使用 pandas 更容易做到这一点

import pandas as pd
df = pd.read_csv("your.csv", columns=["name","pressups", "pullups"])
df.sort(["pressups", "pullups"], ascending=[True, False])

推荐阅读