2016-03-26 9 views
-1

Ich erhalte ein AttributeError auf Linie 6 von meinem Code:Attribute beim Aufruf .append() auf einem Satz eine Liste hinzuzufügen

date_set.append(date). 

Verstehen nicht, warum. Kann mir jemand meinen Fehler erklären?

dates = [[5, 7], [7, 9], [9,10],[8, 9]] 
def answer(dates): 
    date_set = set() 
    for date in dates: 
     if date[0] <= date[1]:  
      date_set.append(date) 
    date_total = [date for date in date_set] 
    return len(date_total) 
+0

'set' Objekte verwenden' add() ', nicht' append() '. Beim nächsten Mal sollten Sie zumindest versuchen, in der Dokumentation nachzusehen. – TigerhawkT3

Antwort

0
date_set.append(date) 

set() nicht anhängen() -Methode

Sie set.update() Methode oder set.add()

+0

Oh yeah Ich erinnere mich gerade, seine .add() oder? – jorgysen

0

Sie ein Attribut Fehler bekommen verwenden sollte, weil es kein solches Attribut ist. Das Wort append bedeutet, an das Ende hinzuzufügen, aber Sätze sind ungeordnet. Um etwas zu einem Satz hinzuzufügen, verwenden .add():

for date in dates: 
    if date[0] <= date[1]: 
     date_set.add(date) 

Je einfacher Weg, es zu tun, obwohl, wäre eine Menge Verständnis zu verwenden:

date_set = {date for date in dates if date[0] <= date[1]} 

Sie brauchen nicht einmal ein erstellen eingestellt, obwohl. Tun Sie dies einfach:

def answer(dates): 
    return sum(1 for date in dates if date[0] <= date[1]) 
+0

Hmmm. Versuchte dies und mein Code scheint immer noch nicht zu funktionieren. Gibt es andere Probleme, die Sie damit sehen können? Danke für die Hilfe – jorgysen

+0

Nun, um eine Liste aus einem Set zu erstellen, können Sie 'list (date_set)' verwenden, aber Sie müssen sowieso nicht in eine Liste konvertieren. Sätze haben Längen wie Listen. Es gibt andere Dinge, die verbessert werden könnten, aber ich sehe nichts, was Ihren Code nicht funktionieren lässt. – zondo

+0

Für Ihren letzten Vorschlag w/out mit einem Satz, welche Antwort sollte das für eine Liste wie "Daten = [[0, 1], [1, 2], [2, 3], [3, 5], [ 4, 5]] 'Sehr neu zu Python, Entschuldigung, wenn dieses Zeug offensichtlich ist – jorgysen

Verwandte Themen