1
137
这方面没有标准的模块,但我已经编写了自己的函数来实现这一点。
请注意,您可以为它提供任何用于编码和解码的字母表。如果你离开
希望这有帮助。
ps-对于URL缩短器,我发现最好去掉一些令人困惑的字符,如0ol1oi等。因此,我使用这个字母表来满足我的URL缩短需求。-
玩得高兴。 |
2
42
我曾经写过一个脚本来做这个,我认为它相当优雅:)
示例用法:
|
3
8
下面的解码器生成器使用任何合理的基础,具有更整齐的循环,并在遇到无效字符时给出明确的错误消息。
|
4
7
如果你在寻找最高的效率(如Django),你会想要如下的东西。这是一个有效的方法结合白沙姆帕扬戈泽和沃尔夫和约翰马金。
你也可以提前计算你的字典。(注意:使用字符串编码比使用列表编码效率高,即使使用很长的数字也是如此。)
在2.5秒内编码和解码了100万个数字。(2.2GHz i7-2670qm) |
5
4
你可能想要base64,而不是base62。它有一个与URL兼容的版本,所以额外的两个填充字符不应该是问题。 这个过程相当简单;考虑base64代表6位,常规字节代表8。为所选的64个字符中的每一个指定一个从000000到111111的值,并将4个值放在一起以匹配一组3位256字节。对每组3个字节重复此操作,在末尾填充您选择的填充字符(0通常很有用)。 |
6
3
如果您所需要的只是生成一个简短的ID(因为您提到了URL缩短器),而不是编码/解码某些内容,那么此模块可能会帮助: |
7
2
|
8
2
我从别人的帖子中获益匪浅。我最初需要在Django项目中使用python代码,但从那时起我就转向node.js,所以这里是 javascript版本 Baishampayan Ghose提供的代码(编码部分)。
|
9
2
我希望下面的片段能有所帮助。
您的案例用法:
显然,您可以指定另一个字母表,由较小或较大数量的符号组成,然后它将您的数字转换为较小或较大的数字基数。例如,提供“01”作为字母表将输出表示输入数字为二进制的字符串。 你可以先改变字母表,使其具有唯一的数字表示。如果你在做网址缩短服务,它会很有帮助。 |
10
2
我的解决方案是:
解释
在任何基数中,每个数字都等于
对于每一个
优势在这个示例中,只有一个乘法(而不是除法)和一些模运算,它们都比较快。 |
11
2
如果使用django框架,则可以使用django.utils.baseconv模块。
除了base62,baseconv还定义base2/base16/base36/base56/base64。 |
12
1
就我个人而言,我喜欢白沙巴扬的解决方案,主要是因为去掉了令人困惑的角色。 为了完整性和更好的性能解决方案, this post 显示了使用python base64模块的方法。 |
13
1
我以前写过这篇文章,效果很好(包括底片)
对不起,这一切的长度 |
14
1
|
15
1
这是一种反复迭代的方法。根据执行的计数,迭代的速度要快一点。
|
16
1
现在有了一个Python库。 我正在为这个做一个PIP包。 我建议你用我的基地。 https://github.com/kamijoutouma/bases.py 灵感来源于bases.js
参照 https://github.com/kamijoutouma/bases.py#known-basesalphabets 什么样的基础是有用的 |
17
0
对不起,我帮不了你办图书馆。如果可能的话,我更喜欢使用base64,只需添加额外的字符就可以了! 然后您可以使用base64模块。 如果这真的,真的不可能: 您可以自己这样做(这是伪代码):
|
July · 如何定义数字间隔,然后四舍五入 1 年前 |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |