在试图优化我正在编写的脚本时,我偶然发现了一些让我困惑的东西。在R中,如果我想从字符串中的特定位置抓取1个字符,那么substr函数似乎是我的最佳选择。在python中,使用切片表示法执行相同的操作是有意义的。让我困惑的是,这两种操作的速度有多么不同。我编写了两个测试脚本来展示这一点:
Python中的:
import time
test = "testtesttesttesttesttesttest"
startTime = time.time()
result = list()
for i in range(100000):
result.append(test[19])
stopTime = time.time()
print(stopTime - startTime)
在R:
library(microbenchmark)
test = "testtesttesttesttesttesttest"
testWithSubstr = function() {
result = character(123456)
for(i in 1:123456) {
result[i] = substr(test, 20, 20)
}
}
print(microbenchmark(testWithSubstr()))
(编辑为使用for循环而不是sapply,以便更好地进行比较,并使用microbenchmark)
Python代码运行速度快了10倍,尽管(据我所知)做了基本相同的事情。为什么会这样
目前没有回答
相关问题 更多 >
编程相关推荐