gpt4 book ai didi

arrays - 如何从文件中读取二维数组的元素个数?

转载 作者:数据小太阳 更新时间:2023-10-29 08:29:48 24 4
gpt4 key购买 nike

我有一个文件。我在文件中存储了一个二维数组,如下所示:

[[0, 0, 1, 0, 1, 0, 1, 0, 1, 0], [0, 0, 0, 0, 0, 0, 1, 1, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 0, 0], [0, 0, 0, 1, 0, 0, 1, 0, 0, 0], [0, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 0], [0, 1, 1, 0, 1, 0, 1, 0, 1, 0], [0, 1, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 1, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]

数组的长度可以变化,它们并不总是 10 个元素长。

我使用这种方法从文件中读取数组:

map = IO.readlines("test.txt")

当我打印结果时使用:

map.each {|x| puts "#{x}"}

输出是我所期望的。但是如果我尝试使用以下方法获取行长度:

puts map[0].length

我得到 320 而不是 10(这是我所期望的)。

有人能解释一下为什么我得到的是 320 而不是 10 吗?

最佳答案

你应该使用 JSON#parse 而不是 IO#readlines因为它是一个有效的 json:

require 'json'    
JSON.parse(File.read("test.txt"))
#⇒ [[0, 0, 1, 0, 1, 0, 1, 0, 1, 0],
# [0, 0, 0, 0, 0, 0, 1, 1, 0, 0],
# [0, 0, 0, 0, 1, 1, 1, 1, 0, 0],
# [0, 0, 0, 1, 0, 0, 1, 0, 0, 0],
# [0, 1, 1, 0, 0, 0, 0, 0, 0, 0],
# [0, 0, 0, 0, 0, 0, 1, 1, 1, 0],
# [0, 1, 1, 0, 1, 0, 1, 0, 1, 0],
# [0, 1, 0, 0, 0, 0, 0, 1, 0, 0],
# [0, 0, 0, 1, 0, 0, 0, 1, 0, 0],
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]

关于arrays - 如何从文件中读取二维数组的元素个数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52079114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com