数组 – Ruby:从文件中读取整数并将它们放入数组中
发布时间:2020-12-17 01:35:34 所属栏目:百科 来源:网络整理
导读:我有一个文件(InputFile.txt)包含整数数字块,每个块使用*字符分割.每个块包含一些行,每行包含三个整数,例如: 4 1233 8 2 55 11 2 4 33 * ?? ??3 5 34 ?? ??2 1 44 ?? ??6 5 33 ?? ?? * 我想读取每个块并将每个块中的整数放在2D数组中并对其进行一些处理.我
我有一个文件(InputFile.txt)包含整数数字块,每个块使用*字符分割.每个块包含一些行,每行包含三个整数,例如:
解决方法f = File.read 'InputFile.txt' data_array = f.split('*').map do |block| block.split(/n+/) .map { |e| e.split(/s+/) .map(&:to_i) } .reject { |a| a.empty? } end # => [[[4,1233,8],[2,55,11],4,33]],# [[3,5,34],1,44],[6,33]]] 这适用于由*分隔的任意数量的块.并且,在每个块中,行由任意数量的新行分隔,并且在每行中,整数元素由任意数量的空格分隔. 因为,每个块都是一个图形,并且每行中的三个元素分别代表source_node,dest_node和weight,因此,要访问这些信息,您可以执行以下操作: data_array.each_with_index do |row,index| p "Graph: #{index}" row.each do |inner_row| p "source_node: #{inner_row[0]},dest_node: #{inner_row[1]},weight: #{inner_row[2]}" end p '- - -' end # => "Graph: 0" # "source_node: 4,dest_node: 1233,weight: 8" # "source_node: 2,dest_node: 55,weight: 11" # "source_node: 2,dest_node: 4,weight: 33" # "- - -" # "Graph: 1" # "source_node: 3,dest_node: 5,weight: 34" # "source_node: 2,dest_node: 1,weight: 44" # "source_node: 6,weight: 33" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |