当前位置: 首页 > 面试题库 >

Python 2.6中的随机字符串(可以吗?)

严劲
2023-03-14
问题内容

我一直在尝试寻找一种更pythonic的方法来在python中生成可扩展的随机字符串。通常,我看到类似

''.join(random.choice(string.letters) for i in xrange(len))

如果要生成长字符串,它很烂。

我一直在考虑random.getrandombits一段时间,并弄清楚如何将其转换为位数组,然后对其进行十六进制编码。使用python
2.6我遇到了bitarray对象,该文档未记录。我以某种方式使它工作,而且看起来真的很快。

它会在大约3秒钟内在我的笔记本上生成一个5000万随机字符串。

def rand1(leng):
    nbits = leng * 6 + 1
    bits = random.getrandbits(nbits)
    uc = u"%0x" % bits
    newlen = int(len(uc) / 2) * 2 # we have to make the string an even length
    ba = bytearray.fromhex(uc[:newlen])
    return base64.urlsafe_b64encode(str(ba))[:leng]

编辑

heikogerlach指出,导致此问题的字符数量奇多。添加了新代码以确保始终从十六进制发送偶数个十六进制数字。

仍然好奇是否有更快的方法可以做到这一点。


问题答案:

import os
random_string = os.urandom(string_length)

以及是否需要url安全字符串:

import os
random_string = os.urandom(string_length).hex()

(请注意,在这种情况下,random_string的长度大于string_length的长度)



 类似资料:
  • 问题内容: 如何在Python中创建随机字符串? 我需要先编号然后重复字符,直到完成为止,这就是我创建的 问题答案: 从(例如)小写字符生成字符串: 结果:

  • 问题内容: 我有阵列中的国家/地区列表,我想从列表中选择一个国家/地区(可能是使用随机的?),但是我自己还没有找到答案… 这是我到目前为止所拥有的: 问题答案: 尝试:

  • 问题内容: 在JavaScript中生成随机的字母数字(大写,小写和数字)字符串以用作可能唯一的标识符的最短方法(在合理范围内)是什么? 问题答案: 如果只想允许特定字符,也可以这样: 另一种方法是使用特殊的字符串,该字符串告诉函数使用什么类型的字符。您可以这样做: 另外,要使用如下所述的base36方法,您可以执行以下操作:

  • 问题内容: 我想要一个5个字符串,该字符串由从集合中随机选择的字符组成。 用JavaScript做到这一点的最佳方法是什么? 问题答案: 我认为这将为您工作:

  • 问题内容: 我有一个字符串数组: 我从中得到随机元素: 现在我想获得当我按下按钮以获取随机水果时苹果所处的数字,例如当我按下randon按钮时,它给了我Banana ..并且还应该给我那个元素编号是 我得到了元素,但是获取元素编号有问题,所以请帮帮我 问题答案: 只需将生成的索引存储在变量中,然后使用此变量访问数组: PS我通常不喜欢每次随机化生成新对象-我更喜欢在程序中使用单个对象- 然后重新使

  • 问题内容: 我想创建精确的5个随机字符串,并尽可能减少重复。最好的方法是什么?谢谢。 问题答案: 这将是我最好的猜测-除非您也要寻找特殊字符: 例 而且,对于基于时钟的时钟(由于它是递增的,因此冲突较少): 注意:增量意味着更容易猜测; 如果您将其用作盐或验证令牌,请不要使用。盐(现在)为“ WCWyb”表示从现在起5秒钟为“ WCWyg”)

  • 本文向大家介绍PHP 生成随机字符串,包括了PHP 生成随机字符串的使用技巧和注意事项,需要的朋友参考一下 要使用PHP生成随机字符串,代码如下- 示例 输出结果 示例 现在让我们来看另一个示例- 输出结果

  • 本文向大家介绍PHP随机字符串函数,包括了PHP随机字符串函数的使用技巧和注意事项,需要的朋友参考一下 我今天正在测试一个字符串操作函数(我将在其他时间发布),我想创建一个可以输入的随机字符串,因此我想出了下面的函数。我以为这是PHPrand()和chr()PHP函数的巧妙用法,所以就在这里。 它通过选择要使用的字符类型(例如大写字母,数字等),然后使用该chr()函数随机选择一个字符来工作。该c