我已经定义了一个生成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))
答案 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']))