如何在python3.6中将字符串转换为唯一的整数,反之亦然(在0到255之间)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在python3.6中将字符串转换为唯一的整数,反之亦然(在0到255之间)相关的知识,希望对你有一定的参考价值。

我想转换像这样的刺痛:

input_str = "send_message"

到0到25​​5之间的唯一整数,当我解码我的唯一整数时,它返回到相同的字符串“send_message”。如何进行转换,我应该将唯一的整数保存到json文件中吗?

答案

由于您只能有256个不同的字符串(因为您只有256个不同的整数),因此一种方法是将字符串存储在列表中。如果要构造JSON文件,请在列表中查找字符串并在JSON文件中使用其索引。当您读取传入的JSON文件时,请使用其中的索引从列表中检索正确的字符串。

另一答案

一般来说,这是不可能的。

在您的示例中,您似乎希望允许字符串包含小写字母字符和/或下划线字符。这意味着每个角色有27种选择。这意味着有27 x 27 = 729个可能的双字符串。你不能将729种不同的可能性放入0到255之间的整数中并使它们保持唯一 - 会有一些碰撞给出相同的结果。因此,您无法将整数解码为明确的字符串。

当然,当字符串变长时,情况会变得更糟。

另一答案

它可能没什么实际意义,但是一个有趣的构建方式 - 一次性 - 一个单独的结构,来回映射来回的可用对象和基于0的连续索引是以下defaultdict

from collections import defaultdict
d = defaultdict(lambda: len(d) // 2)
for s in map(str, range(256)):
    d[d[s]] = s

>>> d['3']
3
>>> d[3]
'3'

以上是关于如何在python3.6中将字符串转换为唯一的整数,反之亦然(在0到255之间)的主要内容,如果未能解决你的问题,请参考以下文章

如何在C#中将字符串转换为整数

如何在 Objective-C 中将字符串转换为整数? [复制]

如何在 Excel VBA 中将整数转换为字符串?

如何在目标 C 中将字符串转换为整数? [复制]

如何在 C++ 中将大数字符串转换为整数?

如何在 Amazon Redshift 中将整数转换为位字符串?