2016-11-17 4 views
-1

Ich habe eine Klasse Animal mit den Attributen Name, Age, Gender und Species. Ich habe eine Liste mit geteilten Elementen wie diese bekommen:Hinzufügen eines Elements aus einer Liste zu einem Klassenobjekt

li = ['George', '23', 'Monkey', 'Male', 'Mike', '31', 'Racoon', 'Male'] 

Jetzt habe ich vier Elemente zu einer Zeit nehmen wollen, und neue Animal Objekte hinzuzufügen. Ich kann wirklich nicht herausfinden, wie. Kann mir jemand dabei helfen?

+0

Willkommen bei Stack Overflow! Bitte lesen Sie unsere [SO Fragen-Checkliste] (http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist), um Ihnen zu helfen, eine gute Frage zu stellen und somit eine gute Antwort zu erhalten. –

+0

Welchen Teil genau stecken Sie fest? Iterieren über die Liste in Stücke von vier Stücken? Aus diesen vier Elementen die Instanz erstellen? – jonrsharpe

+0

Mögliches Duplikat von [Was ist der "pythonischste" Weg, um eine Liste in Chunks zu durchlaufen?] (Http://stackoverflow.com/questions/434287/what-is-the-most-pythonic-way-to-iterate) -over-a-list-in-chunks) –

Antwort

0

Dies kann Ihnen den Einstieg erleichtern:

class Animal(object): 
    def __init__(self, Name, Age, Species, Gender): 
     self.name = Name 
     self.age = Age 
     self.species = Species 
     self.gender = Gender 

li = ['George', '23', 'Monkey', 'Male', 'Mike', '31', 'Racoon', 'Male'] 

first_animal = Animal(*li[0:4]) 
second_animal = Animal(*li[4:]) 

print(""" 
First Animal is: 
gender: {0.gender} 
age: {0.age} 
name: {0.name} 
species: {0.species}""".format(first_animal)) 

Ausgänge:

First Animal is: 
gender: Male 
age: 23 
name: George 
species: Monkey 

Eine kurze Erklärung, „Chunking der Liste“ viele Arten durchgeführt werden kann, entschied ich mich nur die * zu verwenden , splat operator und slice der Inhalt.

Das Instanziieren von Objekten aus der Klasse wurde von diesem Lernprogramm Learn Python the Hard Way am Ende der Seite "A First Class Example" übernommen.

Ich habe diese neuen Klassenobjekte nicht in eine neue Liste eingefügt, aber da alles in Python ein Objekt ist und Sie wissen, wie Sie Listen erstellen, wie Sie es in Ihrer Frage getan haben, werde ich diesen trivialen Teil auslassen.

Hoffe, das hilft.

+1

Vielen Dank für Ihre sehr zuvorkommende und nachdenkliche Bearbeitung @Tadhg McDonald-Jensen,;) ist viel klarer und sieht besser aus! – davedwards

Verwandte Themen