有没有办法只从python列表输出数字?

das*_*uki 9 python

简单问题:

list_1 = [ 'asdada', 1, 123131.131, 'blaa adaraerada', 0.000001, 34.12451235265, 'stackoverflow is awesome' ]
Run Code Online (Sandbox Code Playgroud)

我想创建一个list_2只包含数字的内容:

list_2 = [ 1, 123131.131, 0.000001, 34.12451235265 ]
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法,或者我是否必须检查每个列表项的变量类型,只输出数字?

Ant*_*sma 15

列表理解.

list_2 = [num for num in list_1 if isinstance(num, (int,float))]
Run Code Online (Sandbox Code Playgroud)


dal*_*ogm 15

这应该是最有效和最短的:

import operator
filter(operator.isNumberType, list_1)
Run Code Online (Sandbox Code Playgroud)

编辑:这在python 3000中:

import numbers
[x for x in list_1 if isinstance(x, numbers.Number)]
Run Code Online (Sandbox Code Playgroud)