通过添加后缀避免重复的键名
我想把标题当作键名,但这样可能会出现重复的键名。请问我该怎么检查这个键名是否已经存在,如果存在就给它后面加上“-1”,如果“-1”也存在,那就加上“-2”。
keyName = "hello"
duplicates = Entry.get_by_key_name(keyName)
if duplicates:
keyName = keyName+("-1")
我该怎么循环加1,直到找到一个唯一的名字呢?
任何帮助都非常感谢!
2 个回答
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()
3
在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如说,当用户点击一个按钮时,我们希望程序能够做出反应。这种情况就需要用到事件处理。
事件处理就是程序监听某个事件的发生,比如鼠标点击、键盘输入等。当这个事件发生时,程序就会执行预先设定好的代码。这就像是你在等待朋友来你家,朋友一到你就开门一样。
在代码中,我们通常会定义一个“事件监听器”,它就像是一个守门员,专门负责监控这些事件。一旦有事件发生,守门员就会通知程序去执行相应的操作。
例如,如果你有一个按钮,点击这个按钮就会弹出一个消息框。你需要先告诉程序:“嘿,当这个按钮被点击时,请执行这个动作。”这样,程序就会在你点击按钮的时候,自动弹出消息框。
总之,事件处理让我们的程序能够对用户的操作做出反应,使得程序更加互动和友好。
keyName = "hello"
testName = keyName
suffix = 0
while Entry.get_by_key_name(testName):
suffix += 1
testName = "%s-%d" % (keyName, suffix)
keyName = testName