CSV Python список - PullRequest
       24

CSV Python список

2 голосов
/ 30 апреля 2020
Name  Gender Physics Maths
A                 45     55
X                 22     64
C                 0       86

У меня есть такой CSV-файл, я сделал некоторые изменения, чтобы получить список только с отметками в форме [[45,55], [22,64]]

Я хочу найти минимум для каждого предмета. Но когда я запускаю свой код, я получаю только минимум для первого предмета, а другие значения копируются из строки. Ответ, который я хочу - [0,55] Ответ, который я получаю - [0,86]

def find_min(marks,cols,rows):
minimum = []
temp = []

for list in marks:
    min1 = min([x for x in list])
    minimum.append(min1)


  # for j in range(rows):
#    for i in range(cols):
 #       temp.append(marks)
  #      x = min(temp)


   #     minimum.append(x)
return minimum

Как мне изменить мой код? Я не могу использовать любые другие модули / библиотеки, такие как csv или pandas, я пытаюсь использовать zip (* marks) - но это просто печатает мой список меток как есть. Есть ли способ отделить внутренние списки от больших списков

Ответы [ 2 ]

2 голосов
/ 30 апреля 2020

Это вычислит минимум для каждого субъекта :

In [707]: marks = [[45,55],[22,64]]

In [697]: [min(idx) for idx in zip(*marks)]                                                                                                                                                                 
Out[697]: [22, 55]
1 голос
/ 30 апреля 2020

Попробуйте транспонировать массив marks (по одному студенту на строку), чтобы каждая запись в списке соответствовала столбцу («предмету») из вашего CSV:

def find_min(marks):
    mt = zip(*marks)
    mins = [min(row) for row in mt]
    return mins

пример использования:

marks = [[45,55],[22,64],[0,86]]
print(find_min(marks))

который печатает:

[0, 55]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...