Ruby 制作二维数组

Ruby 制作二维数组,ruby,Ruby,我的数组是[“Mehmet,1,3,0,0,0\n”,“Veli,2,1,2,0,2\n”,“Ali,0,1,1,0,0\n”] 我想声明二维数组就像数组[1][2]一样,第一个维度是名称,第二个维度是注释 我怎样才能做到 Text.txt是 Mehmet,1,3,0,0,0 Veli,2,1,2,0,2 阿里,0,1,1,0,0 我的代码是 filename = "text.txt" results = [] File.new(filename, "r").each { |line| resu

我的数组是
[“Mehmet,1,3,0,0,0\n”,“Veli,2,1,2,0,2\n”,“Ali,0,1,1,0,0\n”]

我想声明二维数组就像
数组[1][2]
一样,第一个维度是名称,第二个维度是注释

我怎样才能做到

Text.txt是

Mehmet,1,3,0,0,0 Veli,2,1,2,0,2 阿里,0,1,1,0,0

我的代码是

filename = "text.txt"
results = []
File.new(filename, "r").each { |line| results << line }

results.inject([]){|ar,s|
ar.concat(s.split(/,/))}


puts results.inspect
filename=“text.txt”
结果=[]

File.new(filename,“r”)。每个{| line | results2d数组表示数组的数组。因此,它可以简单地表示为:

board = [ [ 1, 2, 3 ],[ 4, 5, 6 ]]
或者,如果不想加入第二个子数组

array.map { |ar| x, *xs = ar.split(","); [x, xs] }
# => [["Mehmet", ["1", "3", "0", "0", "0"]],
#     ["Veli", ["2", "1", "2", "0", "2"]],
#     ["Ali", ["0", "1", "1", "0", "0"]]]

你在找这样的东西吗

array = ["Mehmet,1,3,0,0,0\n", "Veli,2,1,2,0,2\n", "Ali,0,1,1,0,0\n"]
new_array = array.map do |elem|
  splited = elem.split(/[,\s]/)
  [splited.shift, splited]
end
# => [["Mehmet", ["1", "3", "0", "0", "0"]],
#     ["Veli", ["2", "1", "2", "0", "2"]],
#     ["Ali", ["0", "1", "1", "0", "0"]]]

要修改第一次发布的集,请执行以下操作:

data = ["Mehmet,1,3,0,0,0\n", "Veli,2,1,2,0,2\n", "Ali,0,1,1,0,0\n"]
data = data.map {|x| y = x.split(","); [y.delete_at(0), y] }

=> [["Mehmet", ["1", "3", "0", "0", "0\n"]],
 ["Veli", ["2", "1", "2", "0", "2\n"]],
 ["Ali", ["0", "1", "1", "0", "0\n"]]]

puts data[0][0] 
=> Mehmet

你应该从更好地阐述你的问题开始。例如,发布一个预期结果。你能解释一下吗?我不明白,因为我是ruby新手。你想在代码中声明2D数组还是想将初始数组转换为2D数组形式?如果你想声明2D数组,你可以在下面的条目中使用我的建议:)你可以n有关阵列的更多信息,请访问此网站:这并不能回答问题。抱歉误解。但我认为问题不够清楚:)
data = ["Mehmet,1,3,0,0,0\n", "Veli,2,1,2,0,2\n", "Ali,0,1,1,0,0\n"]
data = data.map {|x| y = x.split(","); [y.delete_at(0), y] }

=> [["Mehmet", ["1", "3", "0", "0", "0\n"]],
 ["Veli", ["2", "1", "2", "0", "2\n"]],
 ["Ali", ["0", "1", "1", "0", "0\n"]]]

puts data[0][0] 
=> Mehmet