2011-07-27 2 views

Répondre

2
B = filter(lambda x: abs(x) != float('inf'), A) 
+0

+ 1 La compréhension de la liste est probablement plus rapide, mais c'est l'idée. Stocker 'float ('inf')' dans une variable peut aussi être utile. –

+0

Merci! Aussi, comment faire un tableau C avec des indices de nombres non infinis de A: [0, 2, 3, 5]? – user569474

+0

pour votre deuxième question, quelque chose comme [i pour i, el dans enumerate (A) si abs (el)! = Float ('inf')] – RoundTower

1

le plus facile:

arrayA = [1, float('-inf'), 2, 3, float('inf'), -60.2] 
arrayB = [] 
for item in arrayA: 
    if item != float('inf') and item != float('-inf'): 
     arrayB.append(item) 

Pas une solution d'une ligne, mais claire et simple.

2

Vouliez-vous dire:

>>> inf = float('inf'); 
>>> import math 
>>> print filter(lambda x: not math.isinf(x), [1, -inf, 2, 3, inf, -60.2]) 
[1, 2, 3, -60.200000000000003] 

?

6
B = [x for x in A if not math.isinf(x)] 
0

vous pouvez définir par inf

inf = 1e400 
Questions connexes