连续字母数字的自动递增。 (蟒蛇)

时间:2010-10-28 09:46:05

标签: python auto-increment

我已经定义了一个生成ID的函数。每次调用函数时我都需要递增数字。

所以我使用max()函数来查找列表中存储的最后一个最大值。 根据要求,我的ID也应该由整数前面的字符串组成。

所以我将一个字符串与一些存储在列表中的数字连接起来。

现在我的max()无效,因为在将其转换为字母数字后连接。请帮助。我尝试拆分ID,但会拆分每个字符。

以下是我定义的功能:

#!/usr/bin/python

from DB import *

def Sid():
        idlist = []

        for key in Accounts:
                if Accounts[key]['Acctype'] == 'Savings':
                        idlist.append(Accounts[key]['Accno'])

        if len(idlist) == 0:
                return 1001

        else:
                abc = max(idlist)
                return abc + 1

编辑1: 以下是我调用函数的方法:

  accno = Sid()
  AppendRecord(Accno="SA"+str(accno))

1 个答案:

答案 0 :(得分:2)

您可以从字符串中去掉数字后缀以获得要增加的数字:

import re

def number_suffix(s):
    """Return the number from the end of the string. """
    match = re.search(r"\d+$", s)
    if match:
        num = int(match.group(0))
    else:
        num = 0
    return num

print number_suffix("AS1001")    # 1001
print number_suffix("AS1")       # 1
print number_suffix("AS")        # 0

然后改变你的功能:

idlist.append(number_suffix(Accounts[key]['Accno']))