如何在python3.6中将字符串转换为唯一的整数,反之亦然(在0到255之间)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在python3.6中将字符串转换为唯一的整数,反之亦然(在0到255之间)相关的知识,希望对你有一定的参考价值。
我想转换像这样的刺痛:
input_str = "send_message"
到0到255之间的唯一整数,当我解码我的唯一整数时,它返回到相同的字符串“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之间)的主要内容,如果未能解决你的问题,请参考以下文章