2016-11-17 7 views
-1

クラスAnimal、属性NameAgeGenderおよびSpeciesがあります。私はこのような分割の要素を持つリストを持っている:リストからクラスオブジェクトに要素を追加する

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

今私は一度に4つの要素を取り、新しいAnimalオブジェクトに追加します。 私は本当に方法を理解することはできません。誰かがこれで私を助けることができますか?

+0

ようこそスタックオーバーフロー!良い質問をするのを助けるために私たちの[SO Question Checklist](http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist)をよく読んで、良い答えを得てください。 –

+0

あなたはどこにこだわっていますか? 4つの項目の塊でリストを反復するか?これらの4つの項目からインスタンスを作成しますか? – jonrsharpe

+0

可能な重複[チャンク内でリストを反復する最も「ピジョンソニック」な方法は何ですか?](http://stackoverflow.com/questions/434287/what-is-the-most-pythonic-way-to-iterateリスト内のリスト)。 –

答えて

0

これは、あなたが始めるのに役立つことがあります。出力

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

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

「リストのチャンキング」の簡単な説明は、多くの方法を行うことができますが、私はちょうど*を使用することにしました、splat operator、およびsliceが含まれる。

クラスのオブジェクトのインスタンス化は、このチュートリアルLearn Python the Hard Wayのページ「一番上の例」の一番下から借用しました。

私はこれらの新しいクラスオブジェクトを新しいリストに入れませんでしたが、Pythonのすべてがオブジェクトであるため、あなたの質問で行ったようにリストを作成する方法を知っていますので、

これが役に立ちます。

+1

あなたの非常に礼儀正しく思慮深い編集@ Tadhg McDonald-Jensen、ありがとうございます;)ははるかに明確であり、よく見えます! – davedwards

関連する問題