Code-Hilfe

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
BlackJack

Ich habe Deine Beschreibung auf die Frage von Dookie, was das Skript eigentlich tun soll, mal nahezu "wortwörtlich" in Python umgesetzt. Das ist recht effizient. Jedes Element wird nur einmal betrachtet und man braucht auch keine Extradaten.

Code: Alles auswählen

data = [["A", 2], ["B", 4], ["I", 6], ["L",8],
        ["A", 6], ["T", 6], ["C", 4], ["A",2]]

def foo(iterable, sample):
    it = iter(iterable)
    for element in it:
        yield element
        if element == sample:
            print 'OK'
            break

    (sample_str, sample_int) = sample
    for element in it:
        (element_str, element_int) = element
        if element_str == sample_str:
            if element_int == sample_int:
                print 'DUPLICATE'
            else:
                print 'DIFFERENT'
        else:
            yield element

print list(foo(data, data[0]))
In der ersten Schleife wird das erste Auftreten von dem "Tupel" gesucht und wenn es gefunden wird, wird "OK" ausgegeben und in der zweiten Schleife werden dann die beiden verschiedenen Varianten von Duplikaten gesucht, rausgefiltert und entsprechende Ausgaben gemacht. Das Ergebnis ist:

Code: Alles auswählen

OK
DIFFERENT
DUPLICATE
[['A', 2], ['B', 4], ['I', 6], ['L', 8], ['T', 6], ['C', 4]]
Antworten