誰かが宿題の問題で私を助けてくれるかどうか疑問に思いました。
配列a、xが両方の数値であり、x以上のaの値のみを含む配列を返す関数func(a、x)を記述します。
私は持っています
def threshold(a,x):
for i in a:
if i>x: print i
しかし、これは配列として返さないため、間違ったメソッドです。誰かが私に正しい方向を教えてもらえますか?よろしくお願いします
リスト内包表記を使用する:
[i for i in a if i>x]
組み込み関数を使用しますfilter()
:
In [59]: lis=[1,2,3,4,5,6,7]
In [61]: filter(lambda x:x>=3,lis) #return only those values which are >=3
Out[61]: [3, 4, 5, 6, 7]
リスト内包表記を使用できます:
def threshold(a, x):
return [i for i in a if i > x]
def threshold(a,x):
vals = []
for i in a:
if i >= x: vals.append(i)
return vals
宿題の問題は、実際にフィルター機能を実装することだと思います。組み込みのものを使用するだけではありません。
def custom_filter(a,x):
result = []
for i in a:
if i >= x:
result.append(i)
return result