代码之家  ›  专栏  ›  技术社区  ›  Karina Kozarova

计算Ruby中一行CSV中的元素数

  •  0
  • Karina Kozarova  · 技术社区  · 7 年前

    我有以下代码来处理CSV:

    CSV.foreach("./matrix1.csv") do |row|
     puts "Row is: " 
     print row
     line_count += 1
    end
    

    它成功地找到了CSV中的行数。但是,如何在一行(行)中找到CSV元素的数量。 例如,我有以下CSV

    1,2,3,4,5
    

    我怎么能看到元素的数量是5?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Mikhail Katrin    7 年前

    如果每行包含相同数量的元素,则:

    CSV.open('test.csv', 'r') { |csv| puts csv.first.length }
    

    如果没有,则计算每行:

    CSV.foreach('test.csv', 'r') { |row| puts r.length }
    
        2
  •  0
  •   Karina Kozarova    7 年前
    row.size 
    

    按照@Stefan的建议工作

    但更容易出错的方法是:

    CSV.foreach('test.csv','r').max_by(&:length).length
    

    另一种方法是获取当前行的大小:

    CSV.foreach('test.csv', 'r') { |row| puts r.length }