小编fjs*_*js6的帖子

从字符串创建ruby Proc

我想将块定义为字符串,然后创建lambda.以下示例不起作用.这样的事情可能吗?

code_string = "|x|x*2"

l = lambda {eval(code_string)}

l.call(3) => 6
Run Code Online (Sandbox Code Playgroud)

ruby lambda

10
推荐指数
1
解决办法
4149
查看次数

Rails设计疑点:我应该/可以将整个字典/表加载到内存中吗?

我是一个在一个简单的Rails应用程序中工作的新手,它将文档(长字符串)从一种语言翻译成另一种语言.字典是一个术语表(一个用于查找和替换的字符串regexp,以及一个输出替换字符串的块).该表长达100万条记录.

每个请求都是一个想要翻译的文档.在第一个野蛮的力量方法中,我需要针对每个请求/文档运行整个字典.

由于字典每次都会运行(从第一个记录到最后一个),而不是用每个文档加载字典记录表,我认为最好将整个字典作为内存中的数组.

我知道它不是最有效的,但字典必须在这一点上运行.

1.-如果通过重组文档和字典无法获得效率(意味着无法创建较小的字典子集).什么是最好的设计方法?

2.-您是否了解我可以从中学到的类似项目?

3.-我应该在哪里学习如何在rails启动时将这么大的表加载到内存(缓存?)?

任何提出的问题的任何答案将不胜感激.非常感谢你!

memory-management ruby-on-rails

5
推荐指数
1
解决办法
582
查看次数

Redimension numpy数组动态

我有一个数组,让我们说:

A = np.array([1., 2.])
Run Code Online (Sandbox Code Playgroud)

我可以通过简单地执行以下操作来添加新维度:

def redim(arr):
   return arr[:, None]
Run Code Online (Sandbox Code Playgroud)

现在,我想以这种方式动态添加额外的维度:

def redim(arr, dims):
   return arr[dims]
Run Code Online (Sandbox Code Playgroud)

所以我可以这样做:

redim(A, [:, None])
redim(A, [None, :])
redim(A, [none, :, None])
Run Code Online (Sandbox Code Playgroud)

有人知道这是否可能吗?

应该是什么样的第二个参数,以便我可以动态修改它?(字符串,obj,列表)?如何connect获得扩展数组的两个参数?

我知道我可以使用expand_dims路线,但如果有一种方法可以在一次滑动中定义所有扩展尺寸,我的代码将更加清晰.

提前致谢!

python numpy multidimensional-array

3
推荐指数
1
解决办法
1050
查看次数

使用反向引用和散列时的Ruby gsub问题

以下代码定义了具有正则表达式(键)和替换(值)的哈希.然后它迭代哈希并相应地替换字符串.

简单的字符串替换效果很好,但是当我需要在替换它之前计算resut(几年到几天的情况发生变化)时,它不会.并且预先定义哈希是关键.

我错过了什么?任何帮助将非常感激.

a = "After 45 years we cannot use this thing."

hash = {
  /(\d+) years/ => "#{$1.to_f*2}" + ' days',
  /cannot/      => 'of course we CAN'  
}

hash.each {|k,v| 

  a.gsub!(k) { v }
}

puts a
Run Code Online (Sandbox Code Playgroud)

谢谢!

ruby regex hash

2
推荐指数
1
解决办法
3189
查看次数