CSV Python列表

问题描述 投票:1回答:1
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或pandasi尝试使用zip(*marks)--但这只是打印我的标记列表是这样的。

python csv minimum
1个回答
2
投票

这将计算出 每科最少:

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

In [697]: [min(idx) for idx in zip(*marks)]                                                                                                                                                                 
Out[697]: [22, 55]

1
投票

试着换位思考 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]
© www.soinside.com 2019 - 2024. All rights reserved.