2016-12-09 18 views

答えて

2

のようなものである必要がありますが、関数を呼び出すことができ、引数として関数を受け取り、リスト

class matrix: 
    def __init__(self,xs): 
     self.xs=xs #xs is a list 

    def map(self,function): ??? I don't know how to implent this one 

の各要素に関数を適用しmmethodを持つクラスを必要とします通常はパラメータとして渡されたとしても。私はself.xsにリスト内包でそれを呼び出します。

from math import sqrt 

class matrix: 
    def __init__(self,xs): 
     self.xs=xs #xs is a list 

    def map(self,function): 
     return [function(x) for x in self.xs] 

v = matrix([1, 2, 3]) 
r = v.map(sqrt) 
print(r) 

結果:

[1.0, 1.4142135623730951, 1.7320508075688772] 

は、オブジェクトとクラスをmentionningない、ビルトインmapはほとんどあなたがすでに必要とするものはないことに注意してください、あなた以来mentionning価値をあなたの質問に名前を推測:

list(map(sqrt,[1, 2, 3])) 

は(Pythonの3以降listに変換する必要があり、それが可能ですリスト内包よりも少なくなった)

+0

ok @leaf、私は10時30分に正しいフランス語を書いてくれるのを見てみたい:)固定。 –

関連する問題