How to generate unique 64 bits integers from Python?

后端 未结 4 1822
心在旅途
心在旅途 2020-12-13 06:41

I need to generate unique 64 bits integers from Python. I\'ve checked out the UUID module. But the UUID it generates are 128 bits integers. So that wouldn\'t work.

D

4条回答
  •  轮回少年
    2020-12-13 07:34

    just mask the 128bit int

    >>> import uuid
    >>> uuid.uuid4().int & (1<<64)-1
    9518405196747027403L
    >>> uuid.uuid4().int & (1<<64)-1
    12558137269921983654L
    

    These are more or less random, so you have a tiny chance of a collision

    Perhaps the first 64 bits of uuid1 is safer to use

    >>> uuid.uuid1().int>>64
    9392468011745350111L
    >>> uuid.uuid1().int>>64
    9407757923520418271L
    >>> uuid.uuid1().int>>64
    9418928317413528031L
    

    These are largely based on the clock, so much less random but the uniqueness is better

提交回复
热议问题