我需要将我的标题作为键名,问题是这可能会导致重复的键名问题,我如何检查它是否存在,如果确实存在则将-1加到结尾,或者如果 - 的话加-2 1存在。
keyName = "hello"
duplicates = Entry.get_by_key_name(keyName)
if duplicates:
keyName = keyName+("-1")
如何在找到唯一名称之前循环添加1?
非常感谢任何帮助 Ĵ
答案 0 :(得分:3)
keyName = "hello"
testName = keyName
suffix = 0
while Entry.get_by_key_name(testName):
suffix += 1
testName = "%s-%d" % (keyName, suffix)
keyName = testName
答案 1 :(得分:2)
思考问题的另一种方式:
from itertools import imap, dropwhile, count
def make_name(i):
stem = "foo"
return stem if i == 0 else "{0}-{1}".format(stem, i)
def in_universe(name):
return bool(Entry.get_by_key_name(name))
seq = dropwhile(in_universe, imap(make_name, count()))
keyName = seq.next()