perl转python_如何将Perl转换成Python?

本文介绍了一种通过TimestampUniqifier类实现的算法,可以将输入的数字转换为字母组合,如'4'变为'BA',用于生成独特的字符串ID。通过计数器和除法操作确保每次转换后的ID都是唯一的,适用于需要唯一标识的应用场景。
摘要由CSDN通过智能技术生成

我展示的代码不是从'Z'变成'AA',而是变成'BA',但是我想这没关系,它仍然产生一个唯一的idfrom string import uppercase as up

import itertools

def to_base(q, alphabet):

if q < 0: raise ValueError( "must supply a positive integer" )

l = len(alphabet)

converted = []

while q != 0:

q, r = divmod(q, l)

converted.insert(0, alphabet[r])

return "".join(converted) or alphabet[0]

class TimestampUniqifier( object ):

def __init__(self):

self.last = ''

self.counter = itertools.count()

def __call__( self, str ):

if str == self.last:

suf = self.counter.next()

return str + to_base( suf, up )

else:

self.last = str

self.counter = itertools.count()

return str

timestamp_uniqify = TimestampUniqifier()

用法:

^{pr2}$

你可以称之为“maaaany times”,它仍然会产生良好的效果:for i in range(100): print timestamp_uniqify('4')

4

4A

4B

4C

4D

4E

4F

4G

4H

4I

4J

4K

4L

4M

4N

4O

4P

4Q

4R

4S

4T

4U

4V

4W

4X

4Y

4Z

4BA

4BB

4BC

4BD

4BE

4BF

4BG

4BH

4BI

4BJ

4BK

4BL

4BM

4BN

4BO

4BP

4BQ

4BR

4BS

4BT

4BU

4BV

4BW

4BX

4BY

4BZ

4CA

4CB

4CC

4CD

4CE

4CF

4CG

4CH

4CI

4CJ

4CK

4CL

4CM

4CN

4CO

4CP

4CQ

4CR

4CS

4CT

4CU

4CV

4CW

4CX

4CY

4CZ

4DA

4DB

4DC

4DD

4DE

4DF

4DG

4DH

4DI

4DJ

4DK

4DL

4DM

4DN

4DO

4DP

4DQ

4DR

4DS

4DT

4DU

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值