Zastanawiałem się, czy ktoś może mi pomóc w problemie z pracą domową.

Napisz funkcję, FUNC (A, X), który zajmuje tablicę, A, X jest obiema liczbami i zwraca tablicę zawierającą tylko wartości, które są większe lub równe X

Mam

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

Ale jest to niewłaściwa metoda, ponieważ nie powracam go jako tablicy. Czy ktoś może zmusić mnie do właściwego kierunku. Z góry dziękuję

0
user1692517 23 wrzesień 2012, 22:18

5 odpowiedzi

Najlepsza odpowiedź

Użyj funkcji wbudowanej {x0}}:

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]
6
Ashwini Chaudhary 23 wrzesień 2012, 18:23

Użyj Wymień listy:

[i for i in a if i>x]
7
ovgolovin 23 wrzesień 2012, 18:27

Możesz użyć a Rozumienie listy:

def threshold(a, x):
    return [i for i in a if i > x]
4
unutbu 23 wrzesień 2012, 18:26
def threshold(a,x):
    vals = []
    for i in a:
        if i >= x: vals.append(i)
    return vals
2
Curious 23 wrzesień 2012, 18:27

Myślę, że problem z pracą domową jest faktycznie wdrożenie funkcji filtra. Nie tylko używać zbudowanego w jednym.

def custom_filter(a,x):
    result = []
    for i in a:
        if i >= x:
            result.append(i)
    return result
0
The Internet 23 wrzesień 2012, 18:28