3 Stimmen

Vermeidung doppelter Schlüsselnamen durch Hinzufügen eines Suffixes

Ich brauche, um meinen Titel als der Haupttitel das Problem ist dies könnte Probleme mit doppelten Hauptnamen verursachen, wie kann ich überprüfen, ob es existiert und fügen Sie -1 am Ende, wenn es tut, oder fügen Sie -2 am Ende, wenn -1 existiert.

keyName = "hello"
duplicates = Entry.get_by_key_name(keyName)
            if duplicates:
                keyName = keyName+("-1")

Wie kann ich in einer Schleife 1 hinzufügen, bis ich einen eindeutigen Namen finde?

jede Hilfe ist sehr willkommen J

3voto

Drew Sears Punkte 12732
keyName = "hello"

testName = keyName
suffix = 0
while Entry.get_by_key_name(testName):
  suffix += 1
  testName = "%s-%d" % (keyName, suffix)

keyName = testName

2voto

FMc Punkte 40706

Eine andere Art, das Problem zu betrachten:

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()

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X