我想用Python生成唯一的随机字符串,所以我正在利用uuid4。
from uuid import uuid4
def generate_random_string():
return uuid4().hex问题是,它生成字符串的字符太多。我想出的一个可能的解决方案是将字符串从基数16转换为基数62 (数字+小写/大写字母)。它可以工作,但结果仍然有太多的字符(更准确地说是22个字符)。6到10个字符之间的东西会很棒,但我担心在将来的某个时候,它们可能并不是独一无二的。有什么办法可以克服这个问题吗?
发布于 2014-02-10 00:55:20
但是,正如注释中所提到的那样,这可以控制生成字符串的长度,如果您希望在未来减少冲突的机会,则需要使用更多的字符。虽然这看起来不太可能。
from random import sample
from string import digits, ascii_letters
chars = digits + ascii_letters
#'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
gen_str = sample(chars, 10)示例输出:
['2', '8', 'G', 'o', 'U', 'e', 'K', 'f', 'w', '7']
>>> ''.join(gen_str)
'28GoUeKfw7'随机模信息
https://stackoverflow.com/questions/21667300
复制相似问题