【发布时间】:2020-01-22 23:25:39
【问题描述】:
如何将此 python 代码转换为 R?
import hashlib
def str_buckets(a, b, buckets):
return (int(hashlib.md5(str(a + ',' + b).encode('utf-8')).hexdigest(), 16) & 4294967295) % buckets
我会写
hashlib.md5(b'x,y').hexdigest()
到
digest::digest("x,y", algo="md5", serialize=FALSE)
他们都给了我f10bc3c94b77e1d6b9f98106daf335c1的输出
但是在 python 中
int(hashlib.md5(b'x,y').hexdigest(), 16)
正在输出320405033267698290319193645506345776577
是否存在与python 的int(<>, 16) 等效的R?
【问题讨论】:
-
在
R中转换为整数可以使用as.integer来完成。这是你要找的吗? -
它不仅仅是整数,它将是基数为 16 的整数,这就是 python 代码的作用。在
R中的指定320405033267698290319193645506345776577中找不到任何要转换的函数 -
你能试试
Rmpfrpackage: cran.r-project.org/web/packages/Rmpfr/Rmpfr.pdf 并使用mpfrbase 16 函数 -
或许直接通过
reticulate包使用python代码?试试py_run_string("num = int('516',16)") -
reticulate是我目前使用source_python对整个python 定义所做的事情,但我正在使用plumber创建一个API 并在R 中调用python 定义,这让它变慢了跨度>
标签: python r encryption hash cryptography