简单问题:
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)
| 归档时间: |
|
| 查看次数: |
13169 次 |
| 最近记录: |