我试图了解如何在 python 中创建一组固定长度(例如长度 12)的唯一 ID,它使用所有字母数字字符的特定子集。这里的用例是这些 ID 需要被人们读取并在打印文档中引用,因此我试图避免使用字符 L、I、O 和数字 0、1。我当然需要能够生成一个根据需要提供新的 ID。
我在其他答案中研究了 UUID 函数,但无法找到使用该函数来满足我的要求的方法。我已经做了很多搜索,但如果这是重复的,我深表歉意。
编辑:到目前为止,我尝试按照描述使用 UUIDhere。还有hashids功能。但无法找到使用它们的方法。我能想到的下一个最佳解决方案是创建一个随机字符串列表,并检查所有现有的 id。但这似乎效率低得可怜。
对于一组要采样的字符,您可以使用string.ascii_uppercase
(A
-Z
) plus string.digits
(0
-9
),然后删除不需要的字符'LIO01'
。从那里你可以使用random.choices
生成一个长度的序列k
同时允许重复字符。
import string
import random
def unique_id(size):
chars = list(set(string.ascii_uppercase + string.digits).difference('LIO01'))
return ''.join(random.choices(chars, k=size))
>>> unique_id(12)
'HBFXXHWZ8349'
>>> unique_id(12)
'A7W5WK636BYN'
>>> unique_id(12)
'WJ2JBX924NVK'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)