Vérifier si toutes les valeurs de la liste sont supérieures à un certain nombre

my_list1 = [30,34,56]
my_list2 = [29,500,43]

Comment puis-je vérifier si toutes les valeurs de la liste sont >= 30? my_list1 doit travailler et my_list2 ne devrait pas.

La seule chose que je pouvais penser était:

boolean = 0
def func(ls):
    for k in ls:
        if k >= 30:
            boolean = boolean + 1
        else:
            boolean = 0
    if boolean > 0:
        print 'Continue'
    elif boolean = 0:
        pass

Mise à jour de 2016:

Avec le recul, après avoir fait face à de plus grands ensembles de données où la vitesse qui importe réellement et en utilisant numpy...je voudrais faire cela:

>>> my_list1 = [30,34,56]
>>> my_list2 = [29,500,43]

>>> import numpy as np
>>> A_1 = np.array(my_list1)
>>> A_2 = np.array(my_list2)

>>> A_1 >= 30
array([ True,  True,  True], dtype=bool)
>>> A_2 >= 30
array([False,  True,  True], dtype=bool)

>>> ((A_1 >= 30).sum() == A_1.size).astype(np.int)
1
>>> ((A_2 >= 30).sum() == A_2.size).astype(np.int)
0

Vous pouvez aussi faire quelque chose comme:

len([*filter(lambda x: x >= 30, my_list1)]) > 0
  • Une des questions générales à savoir: 1) la assignés boolean variable est locale à la fonction (comme il n'est pas approprié global annotation), et 2) boolean = 0 est une mission, pas une comparaison.
  • Notez que votre my_list1 a une valeur qui n'est pas au-dessus de 30. Il est plutôt égal à 30. Si le 31 au lieu de cela, ou êtes-vous tester pour supérieur ou égal à 30 ici?
InformationsquelleAutor O.rka | 2013-11-26