通过添加后缀避免重复的键名

3 投票
2 回答
796 浏览
提问于 2025-04-16 17:12

我想把标题当作键名,但这样可能会出现重复的键名。请问我该怎么检查这个键名是否已经存在,如果存在就给它后面加上“-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

撰写回答