我想将块定义为字符串,然后创建lambda.以下示例不起作用.这样的事情可能吗?
code_string = "|x|x*2"
l = lambda {eval(code_string)}
l.call(3) => 6
Run Code Online (Sandbox Code Playgroud) 我是一个在一个简单的Rails应用程序中工作的新手,它将文档(长字符串)从一种语言翻译成另一种语言.字典是一个术语表(一个用于查找和替换的字符串regexp,以及一个输出替换字符串的块).该表长达100万条记录.
每个请求都是一个想要翻译的文档.在第一个野蛮的力量方法中,我需要针对每个请求/文档运行整个字典.
由于字典每次都会运行(从第一个记录到最后一个),而不是用每个文档加载字典记录表,我认为最好将整个字典作为内存中的数组.
我知道它不是最有效的,但字典必须在这一点上运行.
1.-如果通过重组文档和字典无法获得效率(意味着无法创建较小的字典子集).什么是最好的设计方法?
2.-您是否了解我可以从中学到的类似项目?
3.-我应该在哪里学习如何在rails启动时将这么大的表加载到内存(缓存?)?
任何提出的问题的任何答案将不胜感激.非常感谢你!
我有一个数组,让我们说:
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路线,但如果有一种方法可以在一次滑动中定义所有扩展尺寸,我的代码将更加清晰.
提前致谢!
以下代码定义了具有正则表达式(键)和替换(值)的哈希.然后它迭代哈希并相应地替换字符串.
简单的字符串替换效果很好,但是当我需要在替换它之前计算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)
谢谢!