将任何字符串转换为整数

时间:2018-09-14 05:37:56

标签: python string python-3.x integer

我想“随机设置”我的随机种子。就像np.random.seed(42)这样的东西,读过《银河旅行者指南》的人会开玩笑。

但是我希望能够以字符串开头随机种子,例如引用。

类似于np.random.seed(str_to_int("I like cake")),为此我需要一个函数,该函数将整数归因于字符串。

我愿意在我的字符串中只允许使用字母(如果需要的话,可以使用小写字母),如果这样做可以简化任务。该函数不一定是随机的,但常数0函数之外的其他函数都很好。

2 个答案:

答案 0 :(得分:4)

事实证明,至少在Python 3中,seed function can be seeded from a string

在Python 2中,您可以先输入CRC of a string,然后输入use this as a seed

答案 1 :(得分:2)

您可以使用hash()函数将字符串转换为整数:

print(hash("tata"))

输出:

2314062222093390636

这是一个整数,可以使用int进行播种。

作为UNIX Man pointed outrandom.seed(..)可以直接接受str


来自@The Unix Man的评论:python哈希使用随机化,同一程序的不同运行导致不同的哈希值:更多内容请阅读

https://docs.python.org/3.3/using/cmdline.html

和param -R(为了兼容性而保留-python 3.3+默认情况下启用了随机化。)


底线:

不要对同一程序的不同运行使用hash(),因为它会加盐-并在运行之间导致不同的哈希值。