数组 – Ruby:从文件中读取整数并将它们放入数组中

数组 – Ruby:从文件中读取整数并将它们放入数组中,第1张

概述我有一个文件(InputFile.txt)包含整数数字块,每个块使用*字符分割.每个块包含一些行,每行包含三个整数,例如: 4 1233 8 2 55 11 2 4 33 *      3 5 34      2 1 44      6 5 33       * 我想读取每个块并将每个块中的整数放在2D数组中并对其进行一些处理.我找到了以下代码: f = File.read 'InputFile. 我有一个文件(inputfile.txt)包含整数数字块,每个块使用*字符分割.每个块包含一些行,每行包含三个整数,例如:

4 1233 8

2 55 11

2 4 33

*

  
  3 5 34
  
  2 1 44
  
  6 5 33
  
  

*

我想读取每个块并将每个块中的整数放在2D数组中并对其进行一些处理.我找到了以下代码:

f = file.read 'inputfile.txt'f.split('*').each  do |set|  set.split.map(&:to_i)

这段代码可以读取每个块,但我不知道如何将每个块放在2D数组中.我尝试了例如set [0] [0]并返回4,但是当我尝试设置[0] [1]时它返回空格.谁能告诉我该怎么办?我想看1233作为第二个数字.

解决方法
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"
总结

以上是内存溢出为你收集整理的数组 – Ruby:从文件中读取整数并将它们放入数组中全部内容,希望文章能够帮你解决数组 – Ruby:从文件中读取整数并将它们放入数组中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1229325.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存