Simple Question:
list_1 = [ \'asdada\', 1, 123131.131, \'blaa adaraerada\', 0.000001, 34.12451235265, \'stackoverflow is awesome\' ]
I want
list_1 = [ 'asdada', 1, 123131.131, 'blaa adaraerada', 0.000001, 34.12451235265, 'stackoverflow is awesome' ]
first example:
list_2 = [x for x in list_1 if type(x) == int or type(x) == float ]
print(list_2)
second example:
list_2 = [x for x in list_1 if isinstance(x, (int, float)) ]
print(list_2)
>>> [ i for i in list_1 if not str(i).replace(" ","").isalpha() ]
[1, 123131.13099999999, 9.9999999999999995e-07, 34.124512352650001]
This should be the most efficent and shortest:
import operator
filter(operator.isNumberType, list_1)
Edit: this in python 3000:
import numbers
[x for x in list_1 if isinstance(x, numbers.Number)]
list_2 = [i for i in list_1 if isinstance(i, (int, float))]