如何在Python中生成唯一ID?

203 投票
8 回答
448053 浏览
提问于 2025-04-15 13:17

我需要根据一个随机值生成一个独特的ID。

8 个回答

30

“唯一”和“随机”是互相排斥的。也许你想要的是这个?

import random
def uniqueid():
    seed = random.getrandbits(32)
    while True:
       yield seed
       seed += 1

用法:

unique_sequence = uniqueid()
id1 = next(unique_sequence)
id2 = next(unique_sequence)
id3 = next(unique_sequence)
ids = list(itertools.islice(unique_sequence, 1000))

返回的每个ID都是不一样的(唯一),而且这个ID是基于一个随机的种子值生成的。

174

你可能会想用Python的UUID功能:

21.15. uuid — 根据RFC 4122的UUID对象

比如:

import uuid
print uuid.uuid4()

7d529dd4-548b-4258-aa8e-23e34dc8d43d

206

也许 uuid.uuid4() 可以解决这个问题。想了解更多信息,可以查看 uuid 的文档。

撰写回答