gpt4 book ai didi

arrays - 如何查找从文件中读取的二维数组元素的出现次数?

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

我对二维数组上的 Array.count 方法有疑问。

我从之前存储的文件中加载我的二维数组,如下所示:

[[1, 1, 1, 1, 1, 2, 2, 1, 1, 1], [1, 1, 1, 1, 1, 2, 2, 1, 1, 1], [1, 1, 1, 1, 1, 2, 2, 1, 1, 1], [1, 1, 1, 1, 1, 2, 2, 1, 1, 1], [1, 1, 1, 1, 1, 2, 2, 1, 1, 1], [1, 1, 1, 1, 1, 2, 2, 1, 1, 1], [1, 4, 4, 5, 1, 2, 2, 1, 1, 1], [1, 4, 4, 5, 1, 2, 2, 1, 1, 1], [1, 4, 4, 1, 2, 2, 1, 1, 1, 1], [1, 4, 4, 1, 0, 0, 1, 1, 1, 1]]

我制作了这个名为 map 的类(class):

require 'json'
class Maps

def initialize(filename)
@map = JSON.parse(File.read(filename))
end

def isCorrupted?
@map.count(0) > 1 ? true : false
end

end

当我尝试使用我的类方法时 isCorrupted?结果总是错误的。

require_relative 'classes/maps'

current_map = Maps.new("test.txt")
puts current_map.isCorrupted?

我不明白为什么该方法在十个子数组中找不到两个0并返回FALSE

我还尝试修改获取次数的方法,如下所示:

@map.count(0)

但结果总是0

有人可以帮助我吗?我需要知道全局数组中零的总数。

Edit-2:Flatten 是我所需要的。

最佳答案

使用 flatten 在这里不起作用。

这样做是有效的优化,如果要求只是检查嵌套数组中是否存在any 0。但这不是你在这里做的;你想检查 多个 0 出现在任何数组中。

例如,您想将以下内容视为未损坏,但 poashin 的回答会将其视为损坏:

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

因此,您应该遍历数组:

require 'json'

class Maps
def initialize(filename)
@map = JSON.parse(File.read(filename))
end

def is_corrupted?
@map.any? { |row| row.count(0) > 1 }
end
end

(要点:我遵循了 ruby style guide conventions here,并使用 snake_case 作为方法名称,而不是 camelCase。)

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

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