gpt4 book ai didi

arrays - 在枚举数组时动态删除数组中的元素

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:12:45 25 4
gpt4 key购买 nike

我正在浏览我的系统词典并寻找根据严格定义既不是任何其他词的子集也不是任何其他词的超集的词。

下面的实现不起作用,但如果它起作用,我认为它会非常有效。我如何遍历数组并在迭代期间从同一数组中删除项目?

def collect_dead_words
result = @file #the words in my system dictionary, as an array
wg = WordGame.new # the class that "knows" the find_subset_words &
# find_superset_words methods
result.each do |value|
wg.word = value
supersets = wg.find_superset_words.values.flatten
subsets = wg.find_subset_words.values.flatten
result.delete(value) unless (matches.empty? && subsets.empty?)
result.reject! { |cand| supersets.include? cand }
result.reject! { |cand| subsets.include? cand }
end
result
end

注意:find_superset_wordsfind_subset_words 都返回散列,因此 values.flatten

最佳答案

不建议在遍历集合时修改集合。相反,要么遍历集合的副本,要么创建一个单独的数组以便稍后删除。

关于arrays - 在枚举数组时动态删除数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31375082/

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