0

誰かが宿題の問題で私を助けてくれるかどうか疑問に思いました。

配列a、xが両方の数値であり、x以上のaの値のみを含む配列を返す関数func(a、x)を記述します。

私は持っています

def threshold(a,x):
    for i in a:
        if i>x: print i

しかし、これは配列として返さないため、間違ったメソッドです。誰かが私に正しい方向を教えてもらえますか?よろしくお願いします

4

5 に答える 5

7

リスト内包表記を使用する:

[i for i in a if i>x]
于 2012-09-23T18:27:03.250 に答える
6

組み込み関数を使用します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]
于 2012-09-23T18:23:21.010 に答える
4

リスト内包表記を使用できます:

def threshold(a, x):
    return [i for i in a if i > x]
于 2012-09-23T18:26:43.703 に答える
2
def threshold(a,x):
    vals = []
    for i in a:
        if i >= x: vals.append(i)
    return vals
于 2012-09-23T18:27:18.537 に答える
0

宿題の問題は、実際にフィルター機能を実装することだと思います。組み込みのものを使用するだけではありません。

def custom_filter(a,x):
    result = []
    for i in a:
        if i >= x:
            result.append(i)
    return result
于 2012-09-23T18:28:36.013 に答える