小编ric*_*ree的帖子

使用其名称(字符串)调用模块的函数

在Python程序中给定带有函数名称的字符串调用函数的最佳方法是什么.例如,假设我有一个模块foo,我有一个内容为的字符串"bar".什么是最好的打电话foo.bar()

我需要获取函数的返回值,这就是我不仅仅使用它的原因eval.我想通过使用eval定义一个返回该函数调用结果的临时函数来做到这一点,但我希望有更优雅的方法来做到这一点.

python object

1580
推荐指数
15
解决办法
63万
查看次数

什么是一些好的.NET Profilers?

您在使用.net程序时使用了哪些分析器,您会特别推荐哪些?

.net c# profiler profiling

374
推荐指数
12
解决办法
31万
查看次数

如何实现Python的内置词典

有谁知道如何实现python的内置字典类型?我的理解是它是某种哈希表,但我无法找到任何确定的答案.

python dictionary data-structures

263
推荐指数
3
解决办法
7万
查看次数

如何检查文件锁?

有没有办法检查文件是否被锁定而不使用try/catch块?

现在,我所知道的唯一方法就是打开文件并抓住任何文件System.IO.IOException.

.net c# io filelock

246
推荐指数
10
解决办法
18万
查看次数

无堆语言如何工作?

我听说过无堆语言.但是,我不知道如何实现这样的语言.谁能解释一下?

stack language-design stackless

57
推荐指数
5
解决办法
9262
查看次数

使用Haskell进行网页搜索

使用Haskell抓取网站的库的当前状态是什么?

我正努力让自己在Haskell中完成更多快速的一次性任务,以帮助提高我对语言的舒适度.

在Python中,我倾向于使用优秀的PyQuery库.在Haskell中有类似简单易用的东西吗?我看过Tag Soup,虽然解析器本身看起来不错,但实际遍历页面并不像其他语言那样好看.

那里有更好的选择吗?

haskell html-parsing web-scraping

51
推荐指数
4
解决办法
1万
查看次数

Python字典的内存有效替代品

在我目前的一个侧面项目中,我正在扫描一些文本,查看三元组词的频率.在我第一次使用它时,我使用了三级深度的默认字典.换句话说,topDict[word1][word2][word3]返回这些单词在文本中出现的次数,topDict[word1][word2]返回包含单词1和2后面出现的所有单词的字典等.

这功能正常,但内存非常密集.在我的初始测试中,它使用了将三元组存储在文本文件中的内存的20倍,这看起来像是一个过大的内存开销.

我怀疑这些词典中的许多都是使用比实际使用的更多的插槽创建的,所以我想用这种方式使用更高效的内存来替换字典.我强烈希望有一种解决方案,允许按字典的方式进行键查找.

根据我所知的数据结构,使用红黑或AVL之类的平衡二叉搜索树可能是理想的,但我真的不想自己实现它们.如果可能的话,我宁愿坚持使用标准的python库,但如果它们最好的话,我肯定会接受其他选择.

那么,有没有人对我有任何建议?

编辑添加:

感谢到目前为止的回复.到目前为止,一些答案建议使用元组,当我将前两个单词浓缩为元组时,这对我来说并没有什么作用.我很犹豫要把所有这三个用作关键因为我希望它能够很容易地查找前两个字的所有第三个字.(即我想要的结果topDict[word1, word2].keys()).

我正在玩的当前数据集是维基百科学校的最新版本.例如,对于文本文件,解析前几千页的结果类似于11MB,其中每行是三个单词并且计数所有选项卡分开.以我现在使用的字典格式存储文本大约需要185MB.我知道指针和诸如此类的东西会有一些额外的开销,但差异似乎过大.

python memory data-structures

42
推荐指数
2
解决办法
2万
查看次数

如何确定进程父级的PID

我在erlang中有一个进程,它应该在spawn之后立即执行某些操作,然后在结束时将结果发送回父进程.我如何计算产生它的过程的PID?

erlang

15
推荐指数
1
解决办法
2312
查看次数

具有IO的Haskell Polyvariadic函数

是否有可能有一个函数接受外部函数调用,其中一些外部函数的参数是CString并返回一个接受String的函数?

这是我正在寻找的一个例子:

 foreign_func_1 :: (CDouble -> CString -> IO())
 foreign_func_2 :: (CDouble -> CDouble -> CString -> IO ())

 externalFunc1 :: (Double -> String -> IO())
 externalFunc1 = myFunc foreign_func_1

 externalFunc2 :: (Double -> Double -> String -> IO())
 externalFunc2 = myFunc foreign_func_2
Run Code Online (Sandbox Code Playgroud)

我想出了如何使用C数字类型执行此操作.但是,我无法找到一种可以允许字符串转换的方法.

这个问题似乎适合IO函数,因为转换为CStrings的所有内容(如newCString或withCString)都是IO.

以下是处理转换双精度的代码.

class CConvertable interiorArgs exteriorArgs where
   convertArgs :: (Ptr OtherIrrelevantType -> interiorArgs) -> exteriorArgs

instance CConvertable (IO ()) (Ptr OtherIrrelevantType -> IO ()) where
   convertArgs = doSomeOtherThingsThatArentCausingProblems
instance (Real b, Fractional a, CConvertable intArgs extArgs) …
Run Code Online (Sandbox Code Playgroud)

haskell ffi polyvariadic

9
推荐指数
2
解决办法
735
查看次数