【问题标题】:CSV Python listCSV Python 列表
【发布时间】:2020-08-14 20:54:05
【问题描述】:
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) - 但这只是按原样打印我的标记列表。 有什么方法可以将内部列表与较大的列表分开

【问题讨论】:

    标签: python list csv minimum


    【解决方案1】:

    这将计算每个主题的最小值

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

    【讨论】:

      【解决方案2】:

      尝试转置 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]
      

      【讨论】:

      • 在上面添加了“示例用法”。 find_min(marks) 返回最小值列表。
      猜你喜欢
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      • 2016-01-15
      • 1970-01-01
      • 2017-07-20
      • 1970-01-01
      • 2014-08-31
      相关资源
      最近更新 更多