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)--但这只是打印我的标记列表是这样的。
这将计算出 每科最少:
In [707]: marks = [[45,55],[22,64]]
In [697]: [min(idx) for idx in zip(*marks)]
Out[697]: [22, 55]
试着换位思考 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]