Как я могу распечатать 3 разных типа значений в отсортированном 2d списке из текстового файла? - PullRequest
0 голосов
/ 13 июля 2020

У меня есть текстовый файл, где написано имя человека, номер. отжимания и кол-во. подтягивания. Это текстовый файл. введите описание изображения здесь

Мне нужно отсортировать студентов по количеству отжиманий и подтягиваний, которые они могут сделать соответственно. Например, Джек может выполнять наибольшее количество отжиманий и подтягиваний, поэтому он будет лидером в обеих категориях.

Чтобы решить эту проблему, я думаю, мне следует составить 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()

Я просто хотел бы знать метод, который помог бы мне решить эту проблему.

Ответы [ 2 ]

1 голос
/ 13 июля 2020

Это проще сделать с помощью pandas

import pandas as pd
df = pd.read_csv("your.csv", columns=["name","pressups", "pullups"])
df.sort(["pressups", "pullups"], ascending=[True, False])
0 голосов
/ 13 июля 2020

попробуйте это,

import csv

with open('file.txt', "r") as f:
    sorted(csv.DictReader(f),
           # replace with actual column names
           key=lambda x: (int(x["pressups"]), int(x["pullups"])),
           reverse=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...